Нужна помощь в написании собственного плагина jQuery - PullRequest
0 голосов
/ 18 января 2010

Пожалуйста, обратите внимание на следующее:

jQuery.fn.jqPos = function(target, settings) {
    settings = jQuery.extend({
        offset: [ 0, 0 ]
    }, settings);

    return this.each(function() {
        magic($(this), target, settings);
        $(window).resize(function(){
            magic($(this), target, settings);
        });
    });

    function magic(self, target, settings) {
        // Here I position self close to target
    }
};

Это прекрасно работает, когда я сначала инициализирую плагин, например $('div#one').jqPos($('div#two'));, и магический метод работает как надо.Но на событии window.resize вообще ничего не происходит (я хочу, чтобы он запускал тот же метод с теми же настройками и параметрами)!

Почему?А как побороть?

РЕДАКТИРОВАТЬ: В магическом методе (в window.resize) все аргументы undefined.

1 Ответ

1 голос
/ 18 января 2010

Вы путаете то, что this обозначает в вашем $(window).resize(function(){ magic($(this), target, settings); }); this больше не относится к вашему элементу, а скорее к window. попробовать:

 return this.each(function() {
        var $this = $(this);
        magic($this, target, settings);
        $(window).resize(function(){
            magic($this, target, settings);
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...