Voglio attivare un evento jQuery personalizzato non bubblable su un oggetto. So che possiamo usare return false o stopPropagation per prevenire il bubbling. Quello che voglio sapere è che posso attivare un evento personalizzato e specificare che per impostazione predefinita non bolle.Attivazione di un evento jQuery personalizzato senza bolle
Questo è il codice che ho adesso
$(".abc").on("change", function() {
var e = new $.Event("datachange");
$(this).trigger(e)
});
È possibile che attiva l'evento DataChange su #abc e bolle l'evento tutta la strada fino. Non lo voglio Posso farlo usando il seguente.
$(".abc").on("change", function() {
var e = new $.Event("datachange");
//e.stopPropagation(); this does not work
$(this).trigger(e)
}).on("datachange", function (e) {
e.stopPropagation();
return false;
});
Ho letto che triggerHandler fa qualcosa di simile, ma solo per il primo elemento di corrispondenza.
C'è un modo migliore per raggiungere questo obiettivo?
Cosa c'è di male in 'e.stopPropagation()' nel gestore di eventi? – crush
@crush È possibile che non ci siano gestori di eventi e che l'evento finisca per ribollire e rimanere intrappolato da un gestore non pensato per quell'oggetto. – Arun