我正在尝试创建一个jquery插件
(function($){
$.fn.myPlugin= function(opt){
var defaults = {
num : '5';
};
return this.each(function(){
var opt = $.extend(defaults, opt);
var template=$('<span class="active">aaaa</span>');
});
};
})(jQuery);
如何将模板num
次追加到$(this)
。除了for循环之外还有其他方法,因为我认为对于应用了插件的每个项目运行for循环都会产生问题并使页面过载。如果我错了,请纠正我。
答案 0 :(得分:0)
几乎没有变化
this.each()
循环之外移动模板的创建,以便每次插件初始化执行一次循环(即$('div').myplugin()
将仅执行一次循环)each
循环中附加模板的coned副本像这样的东西
(function ($) {
var defaults = {
num: 5
};
var template = '<span class="active">aaaa</span>';
$.fn.myPlugin = function (opt) {
var opt = $.extend(defaults, opt),
array = [],
$tmpl;
for (var i = 0; i < opt.num; i++) {
array.push(template);
}
$tmpl = $(array.join(''));
return this.each(function () {
$(this).append($tmpl.clone())
});
};
})(jQuery);
演示:Fiddle