处理jquery插件中的事件

时间:2011-08-22 19:24:59

标签: jquery events jquery-plugins

这是我的第一个jQuery插件,我认为这是一个非常棒的=)。该插件采用一个元素,并确保它始终在屏幕上。如果元素对于屏幕而言太大,则尽可能多地显示该元素。您只需向上和向下滚动即可测试working example。请注意内容如何尽力与您保持联系。

我的问题是我不知道如何处理窗口布局的更改。假设用户调整窗口大小,我如何让我的插件处理它?我基本上需要从头开始重新计算所有内容。我可以绑定到$(window).resize(),但我该怎么做?在我的主要js区块?在我的插件中?我在里面做什么?

我感觉这是相对简单的,但我的大脑正在冻结。

1 个答案:

答案 0 :(得分:2)

我会有不同的代码结构,如下所示:

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

编辑相关性