在jquery插件中处理事件
这是我的第一个jQuery插件,我认为这是一个非常棒的插件=)。插件接受一个元素并确保它始终在屏幕上。如果元素对于屏幕来说太大,则尽可能多地显示。您可以通过简单地上下滚动来测试。请注意内容如何尽最大努力与您保持联系 我的问题是,我不知道如何处理窗口布局的更改。假设用户调整窗口大小,我如何让我的插件处理它?我基本上需要从头开始重新计算一切。我可以绑定到在jquery插件中处理事件,jquery,events,jquery-plugins,Jquery,Events,Jquery Plugins,这是我的第一个jQuery插件,我认为这是一个非常棒的插件=)。插件接受一个元素并确保它始终在屏幕上。如果元素对于屏幕来说太大,则尽可能多地显示。您可以通过简单地上下滚动来测试。请注意内容如何尽最大努力与您保持联系 我的问题是,我不知道如何处理窗口布局的更改。假设用户调整窗口大小,我如何让我的插件处理它?我基本上需要从头开始重新计算一切。我可以绑定到$(window).resize(),但是我在哪里可以这样做呢?在我的主js块中?在我的插件里?我在里面做什么 我有一种感觉,这是相对简单的,但我的
$(window).resize()
,但是我在哪里可以这样做呢?在我的主js块中?在我的插件里?我在里面做什么
我有一种感觉,这是相对简单的,但我的大脑冻结了。我会有一个不同的代码结构,类似这样:
(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);
为相关性而编辑感谢您提出关于如何构建插件的建议。不过,我更关心的是如何安排我的活动。我需要处理调整大小和滚动事件。恐怕我看不出这是如何回答我的问题的。这个答案背后的整个想法是,代码的结构使您可以轻松地调用setSize方法,以便将其设置为$(window).resize()事件(就像在_private.init方法中所做的那样)