Работали ли условия с событиями кликов с отрицательными утверждениями? - PullRequest
0 голосов
/ 16 октября 2019

У меня есть eventListener с событием click, и я хочу запускать свою функцию всегда, но с двумя исключениями. Это мой код (который работает):


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

Я не понимаю, почемуЯ также попытался установить eventListener с «истинным» аргументом, но он всегда один и тот же.

1 Ответ

1 голос
/ 16 октября 2019

Как прокомментировал @Prerak Sola, вы отменили условные проверки, но не условие в целом.

if(!event.target.pathname === '/info' && !event.target.classList.contains('NoTrigger'))

Вам также нужно будет инвертировать || в и &&. Попробуйтеи дайте нам знать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...