In jQuery, è possibile effettuare le seguenti operazioni:Chiusura evento delegazione - listener di eventi sul genitore DOM che copre i bambini/discendenti di una data classe
$('#j_unoffered').on('click', '.icon_del', function() {...
Questo pone un gestore sull'elemento j_unoffered
che gli incendi eventuali discendente elemento con classe icon_del
viene cliccato. Si applica, inoltre, a qualsiasi elemento icon_del
creato successivamente.
Posso ottenere questo funzionamento in Chiusura in cui il clic è sull'elemento stesso.
goog.events.listen(
goog.dom.getElement('j_unoffered'),
goog.events.EventType.CLICK,
function(e) {...
Come posso specificare un obiettivo evento principale in chiusura che lavora per i suoi bambini/discendenti nello stesso modo come l'esempio jQuery?
Suppongo di dover usare lo setParentEventTarget
in qualche modo, ma non sono sicuro di come implementarlo per gli eventi DOM. La maggior parte della documentazione che ho trovato riguarda gli eventi di spedizione personalizzati.
- AGGIORNAMENTO -
Mi chiedo se c'è qualcosa di sbagliato in questo piuttosto semplice soluzione:
goog.events.listen(
goog.dom.getElement('j_unoffered'),
goog.events.EventType.CLICK,
function(e) {
if (e.target.className.indexOf('icon_del') !== -1) {...
lascia ancora this
legata al genitore, ma e.target
permette un lavoro- in giro. Il quinto argomento in listen
(opt_handler) consente di associare this
a qualcos'altro, quindi immagino che sia anche una strada.
+1 per un buon inizio, ma sono sicuro che lo staff di Google deve averlo riscontrato prima, quindi sono riluttante a reinventare la ruota. Vedi anche il mio aggiornamento. – Nick
Grazie! Vedi la mia risposta aggiornata. – Tony
@Nick vediamo qualche demo: http://jsfiddle.net/g3Vj6/1/ (ho dovuto cambiare un po 'il codice, perché non c'è chiusura in jsfiddle, ma l'approccio è lo stesso). Prova a fare clic sugli oggetti defferenti e guarda cosa succede. Immagino che il secondo approccio sia più corretto. – Tony