如果你单击是或否,我试图这样做只会发生一次。现在如果您在第一次点击“否”并在第二次点击“是”,它将执行两次。
<a th:href="@{http://www.thymeleaf/documentation.html}">
感谢您的帮助
答案 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;
}
}