Обработка событий внутри плагина jquery - PullRequest
0 голосов
/ 22 августа 2011

Это мой первый плагин jQuery, и я думаю, что он довольно классный =).Плагин берет элемент и гарантирует, что он всегда на экране.Если элемент слишком велик для экрана, отображается как можно больше его элементов.Вы можете проверить рабочий пример , просто прокручивая вверх и вниз.Обратите внимание, как контент делает все возможное, чтобы остаться с вами.

Моя проблема в том, что я не знаю, как справиться с изменением макета окна.Скажем, пользователь изменяет размер окна, как мне заставить мой плагин обрабатывать его?Мне в основном нужно пересчитать все с нуля.Я мог бы связать с $(window).resize(), но где мне это сделать?В моем основном блок JS?В моем плагине?Что мне делать внутри?

У меня такое ощущение, что это относительно просто, но мой мозг мерзнет.

1 Ответ

2 голосов
/ 22 августа 2011

У меня будет другая структура кода, примерно такая:

(function($){
    var _constants = { 
        default: {}
    }
    var _variables = { 
        options: {},
        jElement: undefined
    }

    var _private: {
        init: function(jElement, options){
            _variables.jElement = jElement;
            _variables.options = $.extend({}, _constants.default, options);
            _private.setSize();
            $(window).resize(_private.setSize);
            return jElement;
        },
        setSize: function(){

        }
        //... other private methods go here ...
    }

    $.fn.dynamicSidebar = function(options) {
       return _private.init($(this), options);
    }
)(jQuery);

Отредактировано для релевантности

...