2013-04-30 102 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