Jquery每个返回对象

时间:2011-05-25 05:47:30

标签: javascript jquery

我正在创建一个简单的插件,它将为所选的每个元素创建一个子元素。 我的问题是该插件不会返回对子元素的引用。 (或者我不知道如何访问它)  这是插件(你可以假设省略了缺少的部分以保持简单):

(function($) {

    $.fn.ui_child = function(options) {

        this.each(function() {  


            return ui_child($(this), options);

        })

    }

    ui_child = function (target, options) {


            return new ui_fn_child(target, options);

    }
    ui_fn_child = function (target, options) {


            this.target = target;

            this.settings= $.extend({}, $.fn.ui_child.defaults, options);

            this.child_create()

            return this.child

    }
     })(jQuery);

如果我执行以下操作:

 var child = $('selector').ui_child();

子变量没有引用任何内容。 理想情况下,我希望能够使用变量访问它。 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

如果以这种方式更改ui_child方法:

$.fn.ui_child = function(options) {
    var children = [];
    this.each(function() {  
        children.push(ui_child($(this), options));
    })
    return children;
}

你会在这里找到一系列的孩子:

var child = $('selector').ui_child();

答案 1 :(得分:0)

使用关键字new使函数返回this对象。

也许你应该以不同的方式思考它:

ui_child = function (target, options) {
        return ui_fn_child(target, options); // no new keyword
};

ui_fn_child = function (target, options) {

        var o = {}; // explicit object creation

        o.target = target;

        o.settings= $.extend({}, $.fn.ui_child.defaults, options);

        o.child_create();

        return o.child;
};