2014-04-30 30 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);