Chcę wywołać niestandardowe zdarzenie jQuery obiektu. Wiem, że możemy użyć funkcji return false lub stopPropagation, aby zapobiec bulgotaniu. Co chcę wiedzieć, czy mogę wyzwolić niestandardowe zdarzenie i określić, że domyślnie nie bańka.Wywoływanie niestandardowego zdarzenia jQuery bez propagacji
Jest to kod mam teraz
$(".abc").on("change", function() {
var e = new $.Event("datachange");
$(this).trigger(e)
});
Powyższy wyzwala zdarzenie dataChange na #abc i pęcherzyki zdarzenie całą drogę w górę. Nie chcę tego. Osiągam to, używając następujących rzeczy.
$(".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;
});
Przeczytałem, że triggerHandler robi coś podobnego, ale tylko dla pierwszego pasującego elementu.
Czy jest lepszy sposób na osiągnięcie tego?
Co jest złego w 'e.stopPropagation()' w twojej procedurze obsługi zdarzeń? – crush
@crush Jest możliwe, że nie ma żadnych procedur obsługi zdarzeń, a zdarzenie zakończyłoby się bulgotaniem i zostało uwięzione przez program obsługi nie przeznaczony dla tego obiektu. – Arun