如果加载一次jquery,则阻止相同函数的实例

时间:2015-05-26 06:59:04

标签: javascript jquery html css

我的网站导航需要转换为垂直导航,因此我测量视口的宽度并将其与resizeload函数绑定。然后它执行menuConvert()函数。但是在调整窗口大小时会导致多次执行menuConvert()函数。

我的js代码是

$(window).bind('load resize', function(){
  width = $(window).width();
  console.log(width)
  if(width < 800){
     menuConverter(); // This is the function
  }
});

如果一旦执行,我想阻止执行该功能。可以提供任何帮助

3 个答案:

答案 0 :(得分:4)

您可以取消绑定事件

$(window).bind('load resize', function(){
  width = $(window).width();
  console.log(width)
  if(width < 800){
     menuConverter(); // This is the function

     //Unbind
     $(window).unbind('load resize')
  }
});

我建议分别使用.on().off()代替.bind().unbind()

答案 1 :(得分:0)

您可以执行类似

的操作
var flag800;
$(window).bind('load resize', function () {
    if (width < 800) {
        if (flag800 !== true) {
            menuConverter(); // This is the function
            flag800 = true;
        }
    } else {
        flag800 = false;
    }
});

演示:Fiddle

答案 2 :(得分:0)

使用简单的bool变量。

var menexe = false;
$(window).bind('load resize', function(){

      width = $(window).width();
      console.log(width)
      if(width < 800){
            if(menexe === false){
         menuConverter(); // This is the function
         menexe = true;
         }
      }
    });