Jeśli przypiszesz moduł obsługi do zdarzenia OnClick elementu dwukrotnie, program obsługi zostanie wykonany dwukrotnie. Ale chcę to zmienić, więc nawet jeśli przydzielę to dwukrotnie, handler wykona tylko jeden raz.Dodaj handler'a OnClick z jQuery tylko raz - nawet jeśli zostanie ponownie wywołany
bezsensowny przykład wykazać problem:
$('.button').click(
function(){
alert('here');
});
$('.button').click(
function(){
alert('here');
});
Więc Dodałem obsługi dwukrotnie. Teraz, gdy kliknę element z tą klasą, otrzymam dwa pola ostrzeżeń.
Pytanie brzmi, w jaki sposób mogę go ograniczyć, aby otrzymać tylko jedno pole ostrzeżenia?
Dlaczego trzeba dodać wydarzenie dwa razy? – root
Istnieje funkcja wykonywana na tej stronie za każdym razem, gdy występuje odświeżenie, w celu dodania modułu obsługi do dynamicznie tworzonych elementów. Jednak każdy element, który wcześniej istniał, ma teraz dwukrotnie obsługę ... – msigman
Myślę, że musisz ponownie przemyśleć swoje podejście, aby uniknąć podwójnego wiązania, ale jeśli jesteś w kryzysie, przypuszczam, że możesz użyć '$ (". Button ") .off ("kliknij"). on ("kliknij", funkcja() {...}); "jak tutaj: http://jsfiddle.net/SsRxv/ – hyperslug