Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Как разобраться с плагином jQuery?

Как разобраться с плагином jQuery?


     03.12.2014    jQuery    887

вопрос
Собственно в чем суть вопроса, пишу плагин но в кое чем не могу разобраться, так как знания jQuery еще не позволяют все делать без вопросов.

Суть плагина в переносе блоков в другие места при определенном разрешении экрана:

Функция переноса блоков:

function adaptiveblockport() {
    (function($) {
        $.fn.blockport = function(options) {
            var options = $.extend({
                resolution: '',
                main: '',
                mobile: ''
            }, options);
            return this.each(function() {
                if($(window).width() > options.resolution) {
                    $(this).appendTo(options.main);
                } else {
                    $(this).appendTo(options.mobile);
                }  
            });
        };
    })($);
}

adaptiveblockport();


// Пример, как она работает:

$(document).ready(function() {
        
        $(".copyblock").blockport({ // что переносим
            resolution: '1000',  // при каком разрешении
            main: ".to", // куда переносим если больше указанного разрешения
            mobile: ".mobile" // куда переносим если меньше указанного разрешения
        });

});



Также есть функция отложенного действия ( с ней проблем нет):

 var waitfunction = (function () {
  var time = {};
  return function (callback, ms, timeid) {
    if (!timeid) {
      timeid = "Don't call this twice without a uniqueId";
    }
    if (time[timeid]) {
      clearTimeout (time[timeid]);
    }
    time[timeid] = setTimeout(callback, ms);
  };
})();


Далее у мне нужно перевыполнить функцию при resize окна:

window.onresize = function(event) {
    waitfunction(function(){
        adaptiveblockport();
    }, 300, "Callback after");
};


Можно сделать так:

waitfunction(function(){ 
        $(".copyblock").blockport({ // что переносим
            resolution: '1000',  // при каком разрешении
            main: ".to", // куда переносим если больше указанного разрешения
            mobile: ".mobile" // куда переносим если меньше указанного разрешения
        });
}, 300, "Callback after");


Суть проблемы заключается в том, что я не знаю, какое блоки создаст пользователь, и не знаю классы, которые он создаст, поэтомоу не необходимо обратиться ко всем созданным, как-то их хранить или перезапустить функцию реиницилизировать, и перевыполнить их заново. Но как это сделать, я не знаю. Помогите пожалуйста.

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы