我有一个带有单击事件的事件监听器,并且希望始终触发我的函数,但有两个异常(exception)。这是我的代码(有效):
function setCookieTrueOnClick (event) {
if (event.target.pathname === '/info' || event.target.classList.contains('NoTrigger') ) {
} else {
triggerTheFunction('true');
}
}
window.addEventListener("click", setCookieTrueOnClick, false);
该事件始终触发,但当用户单击具有“NoTrigger”类的框或用户单击转到/info 的链接时不会触发。
现在,另一方面,当我使用否定条件时,代码不起作用(它始终触发该函数):
function setCookieTrueOnClick (event) {
if (event.target.pathname !== '/info' || !event.target.classList.contains('NoTrigger') ) {
triggerTheFunction('true');
}
}
window.addEventListener("click", setCookieTrueOnClick, false);
我不明白为什么,我也尝试使用“true”参数设置 eventListener,但它总是相同的。
最佳答案
正如 @Prerak Sola 评论的那样,您已经撤消了条件检查,但没有撤消整个条件。
if(!event.target.pathname === '/info' && !event.target.classList.contains('NoTrigger'))
您还需要将 ||
反转为 &&
.尝试一下并告诉我们
关于javascript - 点击事件的条件是否适用于否定语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410142/