我有一个resize throttle listener:
$(window).on('resize', Foundation.utils.throttle(function(e){
}, 300));
要么做到最好(就性能而言):
a)将它放在我的主类和内部触发事件中。在任何需要在调整大小时执行某些操作的类中,我会监听事件并做出反应。
主类:
$(window).on('resize', Foundation.utils.throttle(function(e){
$(document).trigger("my-resize-event");
}, 300));
在我调整窗口大小时需要响应的其他类中:
$(document).on("my-resize-event", function(e){
//do stuff
});
或者,b)在我的每个需要在窗口调整大小上执行某些操作的类中,放置调整大小调整器,这将在许多类中重复此代码:
$(window).on('resize', Foundation.utils.throttle(function(e){
//do stuff
}, 300));
请注意,这不是一个基于意见的问题,我想知道什么是最佳的表现。
答案 0 :(得分:0)
是否绝对有必要这样做?我问的唯一原因是: a)调整页面外观的大小调整事件往往在屏幕上看起来有点笨拙,并且 b)如果只是你试图改变的格式,你通常可以使用CSS类完成你想要做的事情。 CSS3增加了许多功能,大多数现代浏览器都支持很多功能。
无论如何,要回答你的主要问题,最简单的方法是让其他子类订阅事件,以便它可以级联到任何听众。
要做到这一点,相反的方式意味着你需要在声明resize事件时传递更复杂的引用,并且你也可能遇到在事件监听器初始化之前未加载类的竞争条件。
答案 1 :(得分:0)
这真的取决于你的代码块是如何分开的,你是否重用了很多代码,我会说每个块都有它自己的resize事件处理程序,如果你不在这个项目中重用我们的代码,我会有一个resize处理程序和分发自定义调整大小消息。通过这种方式,您可以更轻松地调整代码,而无需更改相同的代码数量。