Стек событий Javascript - PullRequest
0 голосов
/ 20 января 2012

Мне нужно сделать в чистом Javascript то, что я легко делаю в jQuery:

$('document').click(function(e){
   e.preventDefault();
});

В некотором роде, jQuery гарантирует, что мое событие запускается первым, что предотвращает выполнение любого другого зарегистрированного события нажатия.

Когда я пробую это с Javascript

document.addEventListener('click', function(e){
   e.preventDefault();
   e.stopPropagation();
}, 1);

мое мероприятие всегда выполняется последним, поэтому я не могу помешать другим.
В любом случае можно гарантировать, что добавленное мной событие будет добавлено на вершину стека, поэтому сначала выполняется?

спасибо

1 Ответ

1 голос
/ 20 января 2012

Это не правильно. event.preventDefault не будет препятствовать запуску любого другого зарегистрированного обработчика, он просто предотвратит поведение «по умолчанию» (например, для anchor).

event.stopPropagation предотвратит событие от дальнейшего всплеска дерева DOM, так что это, вероятно, более точное описание для этого. Однако не имеет значения, связываете ли вы событие с addEventListener или jQuery (так как он будет использовать ту же функцию внизу).

Вы уверены, что привязываете событие к той же позиции?

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