我正在创建一个简单的插件,它将为所选的每个元素创建一个子元素。 我的问题是该插件不会返回对子元素的引用。 (或者我不知道如何访问它) 这是插件(你可以假设省略了缺少的部分以保持简单):
(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();
子变量没有引用任何内容。 理想情况下,我希望能够使用变量访问它。 谢谢你的帮助
答案 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;
};