只选择第一个按钮

Choose only the first button

本文关键字:按钮 第一个 选择      更新时间:2023-09-26

我试图做到这一点,如果你点击是或否,只会发生一次。就像现在一样,如果你第一次点击"否",第二次点击"是",它会执行两次。

function confirm() { 
    $("#no").one("click", function(){ 
       return false;
    });
}
$("#yes").one("click", function () {
    //do something
});

感谢的帮助

这两个事件都附加在document.ready中,我认为这意味着除非您另有指定,否则它们将无限期保持活动状态。

以下方法相当基本,只需将变量"hasClicked"设置为false即可。一旦单击其中任何一个,就将"hasClicked"设置为true。每个按钮都有一个if结构,它只执行代码if"hasClicked"为false。

尝试以下操作:

var hasClicked = false;
function confirm(){
    $("#no").one("click", function(){
        if (!hasClicked){
            hasClicked = true;
            return false;
        }
    });
    $("#yes").one("click", function () {
        if (!hasClicked) {
            hasClicked = true;
            //do something
        }
    });
}

由于无法解除与one()绑定的事件的绑定,请检查此答案

所以你必须这样做:

function confirm() { 
    $("#no").bind("click", function(){ 
      $(this).unbind();    // prevent other click events
      $("#yes").unbind("click");  // prevent yes click event
      // Do your stuff
    });
}
$("#yes").bind("click", function () {
  $(this).unbind();
  $("#no").unbind("click");
  // Do your stuff
});

为按钮分配一个名为confirmation的类。基于类设置事件处理程序。阅读按钮的值以决定你想做什么。

     $(".confirmation").one("click", function(){
      if($(this).val() === 'yes'){
        //do something
       }else{
         return false;
       }
     }