停止jquery函数执行两次

时间:2015-05-26 13:53:18

标签: javascript jquery

我想在我的代码中执行一次js函数。在resizeload处理程序中 。我有一个函数,如果一个语句为真,另一个语句调整大小,则执行。所以当我的语句为真时,执行该函数,如果调整窗口大小,我不希望再次执行该函数。

我的js代码是

if(vertical){
     vertical();
}

$(window).resize(function(){
   vertical();
}

并且

var vertical = function(){
  ..........
}

如果多次调整窗口大小,我也会阻止执行

4 个答案:

答案 0 :(得分:2)

你必须使用某种标志:

var flag = false;

function vertical() {
   if (!flag) {
       flag = true;
       // do your job
   }
}

答案 1 :(得分:0)

你可以通过信号量来解决这个问题。

因此,您将一个标志设置为false,在调用该函数之前,您只需要调用一次if(flag),执行代码并将标志设置为true

答案 2 :(得分:0)

添加变量以检查函数是否被触发

var execute = true;
if(vertical){
    if (execute) {    
        vertical();
        execute = false;
    }

}
$(window).resize(function(){
   if (execute) {    
        vertical();
        execute = false;
    }
}

答案 3 :(得分:0)

只需在vertical()函数的末尾使用unbind函数,这样当它首先执行时它将取消绑定事件以便下一个窗口调整大小。