2013-04-30 127 views
2

對於examle,如果我有下面的代碼:在jQuery中,如何防止多次點擊執行我的代碼多次?

$("#divTest").append(variable); 

和預期目標是,一旦一個按鈕被點擊,我該如何處理那些沒有耐心的用戶或以其他方式感到需要顯示的一條信息在代碼執行之前多次點擊(從而生成多個副本)?

我會澄清是否需要。

謝謝!

+2

至少,你應該有點擊事件包括單擊處理代碼,沒有? – 2013-04-30 13:44:28

+0

我沒有,說實話,我不知道如何將其實施到現有的項目。它可以輕鬆完成嗎? – MrS1ck 2013-04-30 13:47:15

回答

3

在點擊功能

$("#button").click(function() 
      { 
       $("#divTest").empty().append(variable); 
      } 
     ); 
+1

@ MrS1ck很高興爲您效勞。 – 2013-04-30 13:48:49

+4

文檔中沒有'.clear()'方法。你的意思是['.empty()'](http://api.jquery.com/empty/)? – Blazemonger 2013-04-30 13:49:56

+1

我實際上在jQuery網站上找不到'.clear'函數。也許你的意思是'.empty',它會做你想做的事情? (編輯:Blazemonger打敗了我;)) – Turnerj 2013-04-30 13:51:46

5

看看jQuery的.one功能。這隻會允許一次使用點擊處理程序。

$("#button").one("click",function() { /* -- Your code here -- */ }); 

另外,如果按鈕實際上是一個inputbutton標籤,你可以設置disabled屬性。下面是Mozilla Developer Network (MDN)關於disabled屬性的更多信息。

此布爾屬性指示表單控件不可用於交互。 特別是,不會在禁用的控件上分派點擊事件。 此外,禁用的控件的值不隨窗體一起提交。

0

你可以解除對第一次點擊

$(#button).click(function() { 
    $("#divTest").append(variable); 
    $(this).off("click"); 
}); 
+0

好奇,我應該能夠再次點擊它,$(this).bind(「click」); ? – MrS1ck 2013-04-30 13:50:37

+2

['.off()'](http://api.jquery.com/off)已經取代'.unbind()' – Blazemonger 2013-04-30 13:53:31

+0

感謝您的更正,@Blazemonger – MrS1ck 2013-04-30 13:55:06