javascript - event.defaultPrevented никогда не верно - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь использовать события в моем сценарии, но, похоже, я не понимаю, как работают event.preventDefault () / event.defaultPrevented:

var e = new Event('test');

e.defaultPrevented;
> false

e.preventDefault();

e.defaultPrevented;
> false

Как установить e.defaultPrevented до true? В Chrome / Firefox / Edge он ведет себя одинаково, поэтому я должен сделать что-то не так.

Спасибо:)

РЕДАКТИРОВАТЬ: Проблема заключалась в том, что я забыл создать Событие с:

var e = new Event('test', {cancelable: true});

1 Ответ

0 голосов
/ 01 апреля 2020

Это работает, если вы используете это так

document.querySelector("a").addEventListener("click", function(e) {
  console.log(e.defaultPrevented)
  e.preventDefault();
  console.log(e.defaultPrevented)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="test">Click</a>

jQuery имеет специфицированную c функцию

$("a").on("click", function(e) {
  console.log(e.isDefaultPrevented())
  e.preventDefault();
  console.log(e.isDefaultPrevented())
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="test">Click</a>
...