Ho un elemento in una pagina Web che ha diverse callback su di essoCome rimuovo un callback di un evento specifico da un elemento HTML con jquery?
// First callback
$("#element").click(fn1);
// Second callback
$("#element").click(fn2);
// Definitions
function fn1(){console.log("1");}
function fn2(){console.log("2");}
Esiste un modo per rimuovere solo fn2 dalla lista dei callback innescati da jQuery. So che potrei aggiungere un "se" all'interno della funzione e qualche variabile globale, ma non è quello che sto cercando.
Dipende quale versione. Se c'è qualcosa di nuovo (1.7+), allora questa risposta non è buona. Usa $ ('# elemento'). Off ('click'); – Adam
@Adam, 'unbind()' non è né deprecato né rimosso (come 'live()' è per esempio). Puoi ancora usarlo come equivalente a 'off()'. –
@ FrédéricHamidi - d'accordo, comunque direttamente dai documenti jQuery stessi: (A partire da jQuery 1.7, i metodi .on() e .off() sono preferiti per collegare e rimuovere i gestori di eventi sugli elementi.) - fa sembrare unbind e il binding verrà deprecato abbastanza presto. Perché non prestare attenzione all'avvertimento? – Adam