我正在尝试制作一个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);

10-05 19:59