只选择第一个按钮
这两个事件都附在的document.ready
function confirm() {
$("#no").one("click", function(){
return false;
});
}
$("#yes").one("click", function() {
//do something
});
感谢我认为,这意味着,除非另行指定,他们将保持活跃下去。
以下方法相当基本,只需将变量'hasClicked'设置为false即可。只要点击其中一个,将“hasClicked”设置为true。每个按钮都有一个只执行代码的if结构,如果'hasClicked'是假的。
尝试以下操作:
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()
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
});
我不会解除绑定的东西,它是ong代码,但这是唯一不能正常工作 –
您无法更改您正在使用的代码吗? 另一种解决方案是使用布尔值来处理动作是否仍然需要完成,但是您回答说,@汤姆 - 奈斯的主张不起作用:/ –
分配你的按钮叫做confirmation
。根据类设置一个事件处理程序。阅读按钮的值来决定你想要做什么。
$(".confirmation").one("click", function(){
if($(this).val() === 'yes'){
//do something
}else{
return false;
}
}
我试过..它不起作用 –
您可以粘贴您的完整代码或为您的场景创建一个jsfiddle – CNKR
您正在设置2个事件处理程序。你需要设置1个事件处理函数'$('。confirm-button')。one(“click”,function(){...}'处理两个按钮(检查'yes'/'no '值,并作出适当的响应),或者当'yes'或'no'被触发时,你需要解除绑定'other'事件处理程序 – Joseph