2014-04-30 18 views
0

我在尝试当我按下一个按钮在ajax响应中解除绑定2秒,然后重新绑定它。jquery - 在ajax上取消绑定/绑定按钮

$('#invite').click(function(){ 
     /*ajax*/ 
}); 

和Ajax响应:

//ajax response 
function(rep){ 
/*do stuff*/ 
$('#invite').unbind(); 
$(this).delay(2000).bind(); 
} 

不过,这并不工程,按钮仍然unbinded永远的,有什么想法?

回答

0

不绑定/解除绑定...这很凌乱...... :)

尝试放置一个标志变量。

样本:

在这里

var flag = false; 
$('#invite').click(function(){ 
    if (flag) return false; // if flag is true, don't run codes below this line 
    flag = true; 
     /*ajax*/ 
}); 

然后,

//ajax response 
function(rep){ 
/*do stuff*/ 
setTimeout(function(){flag=false},2000); 
} 

好,类似的东西...或者只是改变相应的flag变量,如果这个样本没有为工作你...你有想法...

+0

谢谢,工作正常! – Speedwheelftw

0

当你从元素中解除任何东西时,它不会存储信息,所以当你再次绑定信息时,没有任何东西可以绑定。

如果要再次绑定它,只需将函数存储在函数中。

function x(){ 
// any thing 
    $('#invite').click(function(){ 
    /*ajax*/ 
    }); 
} 

结合

$('#invite').bind(x); 

为解除绑定

$('#invite').unbind(); 
0

不喜欢这

function f1(){ 
      } 

$('#invite').click(function(){ 
    f1(); 
}); 

$("#invite").unbind("click"); 
$(this).delay(2000).bind("click",f1);