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

时间:2014-04-24 12:45:12

标签: jquery html

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

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

这是FIDDLE

12 个答案:

答案 0 :(得分:15)

你可以在jquery中使用one来获取

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

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

答案 1 :(得分:3)

改变这个......

  $("#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次单击后禁用按钮)。

答案 2 :(得分:1)

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

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

<强> Working Demo

答案 3 :(得分:1)

像这样的事情Fiddle

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

答案 4 :(得分:0)

使用off()

$("#myButton").click(function(){
    var count = 0;
    count++;
    alert("button");
    $(this).off('click');

    if(count>1)
      $('#myButton').prop('disabled', true);
});

答案 5 :(得分:0)

var clicked = false;
$("#myButton").click(function(){
    if(!clicked){
        clicked = true;
        alert("button");
        $('#myButton').prop('disabled', true);
    }               
 });

演示:http://jsfiddle.net/7jCwK/6/

答案 6 :(得分:0)

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

  var count = 0; 
$("#myButton").click(function(){

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

JsFiddle

答案 7 :(得分:0)

首次单击按钮时

Diasble按钮

检查小提琴 http://jsfiddle.net/chetangawai/7jCwK/10/

答案 8 :(得分:0)

声明

  var count = 0;

在点击功能之外

答案 9 :(得分:0)

检查小提琴 here

   var count = 0;

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

      count++;

      alert("button");

      if(count>=1)

          $('#myButton').prop('disabled', true);

});

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

答案 10 :(得分:0)

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

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

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

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

答案 11 :(得分:-3)

试试这个并且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/7jCwK/13/