使用jquery可以在条件语句从false变为true时立即触发函数吗?
我正在寻找一种不消耗所有系统资源的解决方案(即:Not setInterval(function(){},1)
)。
最后我使用了.scroll()而不是下面更雄心勃勃的建议。
答案 0 :(得分:4)
除非更改元素的高度,否则只需观察调整大小和滚动事件。所以试试这个:
$(window).bind('resize', handler);
$(document).bind('scroll', handler);
由于这些事件可以经常触发,因此应该将处理程序操作保持在最低限度。例如,您可以使用closure缓存$
来电:
var handler = (function(a, b){
return function(event) {
if ((a.scrollTop() + a.height()) == b.height()) {
/* … */
}
})($('#lay3b_top'), $('#measuring_wrapper'));
这里,外部函数返回的内部函数内的变量a
和b
分别绑定到$('#lay3b_top')
和$('#measuring_wrapper')
的返回值。 (function(){})()
是一个匿名函数表达式,使用给定的参数立即调用,以将参数绑定到函数的作用域。