/ / È possibile associare un callback all'impostazione di un listener di eventi delegato (.on ())? - javascript, jquery

È possibile associare un callback all'impostazione di un listener di eventi delegato (.on ())? - javascript, jquery

Fondamentalmente, voglio usare una classe per selezionare gli elementi per ricevere ascoltatori di eventi di selezione delegati. Ma voglio rimuovere la classe immediatamente dopo.

Questo è quello che avevo in mente:

docSelector // $(window.document)
.on("click touchstart", btnSelector, click[name])
.queue(function() {
// remove class to prevent extra binding
$(btnSelector).removeClass(btnSelector);
});

Penso che dovrebbe essere chiaro quello che sto cercando di fare, ma non sono sicuro queue funziona anche per questo genere di cose. Non ho molta familiarità con jQuery, ma sto lavorando sul codice di qualcun altro che lo usa liberamente. Grazie in anticipo.

In altre parole, suppongo di cercare un metodo generico per affrontare una callback alla fine della catena.

risposte:

1 per risposta № 1

queue la funzione dipende da dequeue chiamata. Se hai bisogno di rimuovere la classe ASAP, dovresti farlo nella specifica click[name] gestore di funzioni.

Anche jQuery: più di un gestore per lo stesso evento

I gestori verranno eseguiti nell'ordine in cui sono stati associati.

Poiché il modello di eventi jQuery consente più gestori su un elemento, pertanto un gestore successivo non sostituisce un gestore precedente.

Potresti fare qualcosa come:

docSelector // $(window.document)
//Is executed first
.on("click touchstart", btnSelector, function(){
// remove class to prevent extra binding
var classSel = ".jc-click-" + name;
$(classSel).removeClass(classSel);
})
//Is executed just after
.on("click touchstart", btnSelector, click[name]);