Estou tentando encontrar o equivalente jQuery desta chamada de método JavaScript:
document.addEventListener('click', select_element, true);
Eu cheguei até:
$(document).click(select_element);
mas isso não alcança o mesmo resultado, como o último parâmetro do método JavaScript - um booleano que indica se o manipulador de eventos deve ser executado na fase de captura ou subida (de acordo com meu entendimento em http://www.quirksmode.org /js/events_advanced.html ) - é deixado de fora.
Como especificar esse parâmetro ou obter a mesma funcionalidade usando o jQuery?
javascript
jquery
events
event-handling
dom-events
Estragar
fonte
fonte
Respostas:
Nem todos os navegadores oferecem suporte à captura de eventos (por exemplo, as versões do Internet Explorer inferiores a 9 não), mas todos suportam a interferência de eventos, razão pela qual é a fase usada para vincular manipuladores a eventos em todas as abstrações entre navegadores, incluindo o jQuery.
O mais próximo do que você está procurando no jQuery está usando
bind()
(substituído peloon()
jQuery 1.7+) ou os métodos jQuery específicos do evento (nesse casoclick()
, que chamabind()
internamente de qualquer maneira). Todos usam a fase de bolhas de um evento gerado.fonte
A partir do jQuery 1.7,
.on()
agora é o método preferido de eventos de ligação, em vez de.bind()
:Em http://api.jquery.com/bind/ :
A página de documentação está localizada em http://api.jquery.com/on/
fonte
O mais próximo seria a função de ligação:
http://api.jquery.com/bind/
fonte
Uma coisa a notar é que os métodos de eventos do jQuery não fazer fogo / armadilha
load
emembed
tags que contêm SVG DOM que carrega como um documento separado naembed
tag. A única maneira que encontrei para interceptar umload
evento foi usar JavaScript bruto.Isso não vai funcionar (eu tentei
on
/bind
/load
methods):No entanto, isso funciona:
fonte
$img
?Agora você deve usar a
.on()
função para vincular eventos.fonte
fonte
Aqui está um excelente tratamento na Mozilla Development Network (MDN) dessa questão para o JavaScript padrão (se você não deseja confiar no jQuery ou entendê-lo melhor em geral):
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
Aqui está uma discussão sobre o fluxo de eventos de um link no tratamento acima:
http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
Alguns pontos-chave são:
fonte