在jquery插件中追加n次

时间:2013-11-12 08:08:09

标签: jquery

我正在尝试创建一个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循环都会产生问题并使页面过载。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

几乎没有变化

  1. 您需要使用循环来创建模板的副本
  2. 您可以在this.each()循环之外移动模板的创建,以便每次插件初始化执行一次循环(即$('div').myplugin()将仅执行一次循环)
  3. 使用数组创建模板副本
  4. each循环中附加模板的coned副本
  5. 像这样的东西

    (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