javascript/jquery—避免重复计算条件

javascript/jquery—避免重复计算条件,javascript,events,scroll,jquery,Javascript,Events,Scroll,Jquery,我目前在jquery的scroll事件中运行了一个条件,这似乎没有多大意义,因为它只执行一次。我想知道是否有任何方法可以确保只对条件进行一次计算 这是我的密码: $window.scroll(function() { if (s1_doAnimate == true){ s1_doAnimate = false; } }) 您可以在满足条件后解除绑定处理程序 $window.scroll(function foo /* give the function a name */ (

我目前在jquery的scroll事件中运行了一个条件,这似乎没有多大意义,因为它只执行一次。我想知道是否有任何方法可以确保只对条件进行一次计算

这是我的密码:

$window.scroll(function() {
  if (s1_doAnimate == true){
    s1_doAnimate = false;
  }
})

您可以在满足条件后解除绑定处理程序

$window.scroll(function foo /* give the function a name */ () {
  if (s1_doAnimate == true){
    s1_doAnimate = false;

    // Unbind the handler referenced by the name...
    $window.off(foo);
  }
})

您可以在满足条件后解除绑定处理程序

$window.scroll(function foo /* give the function a name */ () {
  if (s1_doAnimate == true){
    s1_doAnimate = false;

    // Unbind the handler referenced by the name...
    $window.off(foo);
  }
})
使用

使用


这是scroll事件中代码的一部分还是唯一的操作?这是scroll事件中代码的一部分还是唯一的操作?这不会为每个触发器创建一个新函数吗?也许最好将
foo
存储在处理程序之外?只是好奇…@David:不,声明只处理一次(在函数表达式传递给
scroll()
函数之前)。IE<9将为它创建2个函数();这不会为每个触发器创建一个新函数吗?也许最好将
foo
存储在处理程序之外?只是好奇…@David:不,声明只处理一次(在函数表达式传递给
scroll()
函数之前)。IE<9将为它创建2个函数();