Добавить n раз в плагине jquery

0

Я пытаюсь создать плагин 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). Есть ли способ, отличный от цикла, потому что я думаю, что работа для цикла для каждого элемента, на котором применяется плагин, создаст проблему и перегрузит страницу. Поправьте меня если я ошибаюсь..

Теги:

1 ответ

0
Лучший ответ

Немногие изменения

  1. Вам нужно будет использовать цикл для создания копий шаблона
  2. Вы можете перемещать создание шаблона за пределы цикла this.each() чтобы цикл выполнялся один раз для инициализации плагина (это $('div').myplugin() будет выполнять цикл только один раз)
  3. Используйте массив для создания копий шаблона
  4. В each цикле добавьте конусную копию шаблона

Что-то вроде этого

(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);

Демо: скрипка

  • 0
    Будет ли цикл for создать проблему, если есть более 100 делений? Если бы вы могли объяснить, что вы сделали, я был бы благодарен

Ещё вопросы

Сообщество Overcoder
Наверх
Меню