Даже если у вас было несколько событий в одной и той же ссылке, и это было не первое выполненное предупреждение, то в любом случае должна работать функция protectDefault ();поскольку действие по умолчанию выполняется после запуска всей очереди событий.
Вместо этого я думаю, что ваше событие никогда не запускается;убедитесь, что вы указали отключенный класс на своей ссылке
<a href="..." class="disabled"></a>
и что у вас нет событий, отменяющих очередь во время его выполнения.Вот что вы должны искать:
event.stopPropagation() // stop event bubbling, prevent the event to apply on his parent eg if your <a> is in a div, prevent the div click event queue to run -- SHOULDN'T BE YOUR PROBLEM
event.stopImmediatePropagation() // same as stopPropagation() and in addition stop the event queue on this element (so if you have 3 clicks event on your link and the first calls this, the other two won't run)
return false; // fully cancel the event, has the effect to also stop the event queue, similar to calling preventDefault() AND stopImmediatePropagation() -- SHOULDN'T BE YOUR PROBLEM
Чтобы быть на 100% уверенным, вы можете проверить, что ваше событие работает, изменив ссылку на <a href="#" class="disabled>
(чтобы страница не перезагружалась)делать console.log('test')
во время мероприятия.Если он не вызывается, он либо не затрагивается, либо отменен.