2011-08-23 9 views

risposta

11

Perché non tutti i browser supportano la cattura degli eventi, in particolare IE. Poiché jQuery dovrebbe essere compatibile con più browser, non può offrire la cattura degli eventi (potrebbe essere possibile simulare la cattura degli eventi, ma se fosse facile, sono sicuro che l'avrebbero fatto).

+0

http://censore.blogspot.in/2014/09/js-event-bubbling-vs-event-capturing.html – biplav

+7

IMHO, jquery 2.x dovrebbe sostenerlo –

+2

Questo è una brutta ragione per non supportare qualcosa. almeno dare all'utente il potere di scegliere. Penso che la potenza degli eventi namespacing sia molto comoda con jQuery e non con il JS nativo. – vsync

5

Questa era in effetti una caratteristica auspicabile in jQuery 2 ma il core-team era praticamente convinto che consentire agli eventi di catturare lo stesso livello nell'intero sistema di eventi jQuery avrebbe aperto un sacco di problemi. Il biglietto originale può essere trovato qui [1]. Hanno persino chiuso il biglietto dopo poche discussioni.

Inoltre, i browser più vecchi di IE8 e Opera 7.0 non supportano la cattura degli eventi. Poiché l'obiettivo principale di jQuery è fornire supporto per browser, non supporta la cattura di eventi.

Su una nota più leggera, sembra che jQuery sia più focalizzato a sfruttare la Delega eventi che si basa sul bubbling di eventi fino all'albero DOM.

[1] http://bugs.jquery.com/ticket/14953

+1

L'intero punto di jquery 2.0 è di abbandonare il supporto per i browser più vecchi, quindi i browser meno recenti che non supportano l'acquisizione di eventi non dovrebbero essere un blocco per almeno jquery 2. – Jens

Problemi correlati