Javascript onclick函数是否覆盖if语句?
我只是尝试在单击按钮后加载一个函数,但根据值,它将调用不同的方法并执行不同的操作 我知道该值被设置为“set”,但它仍然进入if语句并提交removeAttribute方法Javascript onclick函数是否覆盖if语句?,javascript,jquery,Javascript,Jquery,我只是尝试在单击按钮后加载一个函数,但根据值,它将调用不同的方法并执行不同的操作 我知道该值被设置为“set”,但它仍然进入if语句并提交removeAttribute方法 if (change == "set"){ document.getElementById('close').setAttribute("data-dismiss", "modal"); $('#\\#myModal').modal({ keyboard: false, bac
if (change == "set"){
document.getElementById('close').setAttribute("data-dismiss", "modal");
$('#\\#myModal').modal({ keyboard: false, backdrop: 'static' });
$('#\\#myModal').modal('show');
createPicker();
}
else if (change == "search"){
document.getElementById('close').onclick = function(){
document.getElementById('close').removeAttribute("data-dismiss");
hideFields();
}
}
如果有人知道如何在值不匹配时阻止它进入else语句,我们将不胜感激。我认为问题在于您已经设置了
onclick
一次,您需要做的是清除onclick
即使在set
条件下
if (change == "set"){
如果
change
确实等于字符串“set”
,则将不执行else
。需要查看更多信息。真的需要看看变化是如何设定的,以确定它是否是你所认为的。尝试在if语句之前将其记录到控制台以进行检查。您是否意识到,一旦附加事件,它将始终被附加,直到您将其删除?我可以截图显示它确实已“设置”。我知道,因为它在chrome调试器中显示值。这就是为什么我如此激动confused@Pointy你需要证据来支持你的事实
document.getElementById('close').removeEventListener("onclick");
document.getElementById('close').setAttribute("data-dismiss", "modal");
$('#\\#myModal').modal({ keyboard: false, backdrop: 'static' });
$('#\\#myModal').modal('show');
createPicker();
}
else if (change == "search"){
document.getElementById('close').onclick = function(){
document.getElementById('close').removeAttribute("data-dismiss");
hideFields();
}
}