我正在尝试制作一个jQuery插件,该插件将占据一个正方形,在其中放置三个正方形,然后在这三个正方形内放置三个其他较小的正方形。我不需要或想要完整的代码,因为这是我自己的问题,但是我不知道如何进行jQuery插件调用,例如:
(function($){
$.fn.squares = function( type ) {
var recursionDepth = 1;
return this.each(function() {
var $this = $(this);
if (++ recursionDepth > 3) {console.log('rec lim');return;}
// put div.squares in $this
$('.square', $this).squares();
});
};
})(jQuery);
最佳答案
使用执行实际工作并以深度为参数的辅助函数。从深度为1(或0)的插件main方法中调用它,然后在其上递归,并随着深度的增加而递增,直到达到所需的深度。
未经测试:
(function($){
$.fn.squares = function( type ) {
return this.each(function() {
doSquares($(this),1);
});
function doSquares($square,depth) { // adds three squares to the current square and recurses over each to the appropriate depth
for (int i = 0; i < 3; ++i) {
var $newSquare = // add square to current square and return jQuery of the new square
if (depth < 3) {
doSquares($newSquare,depth+1);
}
}
}
};
})(jQuery);