Mam element strony internetowej, która ma kilka zwrotnych na nimJak usunąć określone wywołanie zwrotne zdarzenia z elementu HTML za pomocą jquery?
// First callback
$("#element").click(fn1);
// Second callback
$("#element").click(fn2);
// Definitions
function fn1(){console.log("1");}
function fn2(){console.log("2");}
Czy istnieje sposób, aby usunąć tylko FN2 z listy wywołania zwrotne wywołane przez jQuery. Wiem, że mogę dodać "if" wewnątrz funkcji i pewną zmienną globalną, ale tego nie szukam.
zależy od tego wersję. Jeśli jest to coś nowego (1.7+), to ta odpowiedź nie jest dobra. Użyj $ ("# element"). Off ("kliknij"); – Adam
@Adam, 'unbind()' nie jest ani przestarzałe, ani usunięte (jak na przykład 'live()'). Możesz nadal używać go jako odpowiednika 'off()'. –
@ FrédéricHamidi - zgodzili się jednak bezpośrednio z samymi dokumentami jQuery: (Od jQuery 1.7, metody .on() i .off() są preferowane do dołączania i usuwania programów obsługi zdarzeń na elementach.) - sprawia, że brzmi to jak unbind i bind wkrótce będzie przestarzałe. Dlaczego nie posłuchać ostrzeżenia? – Adam