只选择第一个按钮

时间:2016-08-05 15:15:34

标签: javascript jquery html ajax dom

如果你单击是或否,我试图这样做只会发生一次。现在如果您在第一次点击“否”并在第二次点击“是”,它将执行两次。

<a th:href="@{http://www.thymeleaf/documentation.html}">

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

这两个事件都附在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
        }
    });

}

答案 1 :(得分:1)

由于您无法取消绑定与one() check this answer

绑定的事件

所以你必须像这样解决:

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
});

答案 2 :(得分:1)

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

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