使用jQuery防止第二次按钮单击

我的页面上有一个按钮。 如果用户第二次点击按钮,我不想做任何操作。 我有以下代码。 但它没有用。 有人可以帮忙吗?

$("#myButton").click(function(){ var count = 0; count++; alert("button"); if(count>1) $('#myButton').prop('disabled', true); });  

这就是FIDDLE

你可以在jquery中使用一个

 $("#myButton").one("click",function(){ 

它会将处理程序附加到最多将执行一个元素的事件。

改变这个……

  $("#myButton").click(function(){ var count = 0; count++; alert("button"); if(count>1) $('#myButton').prop('disabled', true); }); 

对…

  $("#myButton").one("click", function(){ alert("button"); }); 

这将指定一个单击事件处理程序,该处理程序仅在您第一次单击该元素时触发,在本例中为您的按钮。

您可以非常简单地更改现有代码以使其正常工作……

  var count = 0; $("#myButton").click(function(){ count++; alert("button"); if(count>0) $('#myButton').prop('disabled', true); }); 

按照你的方式,每次点击按钮时你都将数量设置为0(并且只有在2次点击后才会禁用按钮)。

使用.one()将事件绑定到运行/执行一次。

  $("#myButton").one('click',function(){ alert("button"); }); 

工作演示

像这样的东西会做那个小提琴

 $("#myButton").click(function(){ alert("button"); $(this).unbind(); }); 

使用off()

 $("#myButton").click(function(){ var count = 0; count++; alert("button"); $(this).off('click'); if(count>1) $('#myButton').prop('disabled', true); }); 
 var clicked = false; $("#myButton").click(function(){ if(!clicked){ clicked = true; alert("button"); $('#myButton').prop('disabled', true); } }); 

演示: http : //jsfiddle.net/7jCw​​K/6/

Diasble单击按钮后出现Diasble按钮

检查小提琴http://jsfiddle.net/chetangawai/7jCw​​K/10/

宣布

  var count = 0; 

在点击function之外

在这里查看小提琴

  var count = 0; $("#myButton").click(function(){ count++; alert("button"); if(count>=1) $('#myButton').prop('disabled', true); }); 

每次调用函数时,您的变量都会被初始化,您可以使用变量外部函数。

您每次点击都会初始化您的count变量。 把它移到外面看看工作

  var count = 0; $("#myButton").click(function(){ count++; alert("button"); if(count>0) $('#myButton').prop('disabled', true); }); 

的jsfiddle

我在执行表单提交时遇到了实际禁用按钮的问题。 因为禁用该按钮会阻止进一步的操作,所以您可能会尝试在单击时向该按钮添加一个类,该类被称为“已禁用”,然后使用新的“已禁用”类的处理程序来防止单击时使用以下内容的默认行为:

 $(".my_submit_button").click(function(e){ $(e.target).addClass("disabled"); }) $(".disabled").click(function(e){ e.preventDefault(); }); 

这应该允许按钮完成第一次点击的任何操作(即使该操作是表单提交),同时仍然不允许任何后续点击。

尝试这个并且pl避免仅使用“click”而不是使用“on”,下面的代码显示了如何通过其替代操作点击。

  $("#myButton").on("click" , function(){ $("#myButton").off("click"); //just off the click event once u click var count = 0; count++; alert("button"); var isBool = count>1; $('#myButton').prop('disabled', isBool); }); 

在这里查看演示: http : //jsfiddle.net/7jCw​​K/13/