Metoden off
Metoden off giver mulighed for at fjerne en hændelseshåndterer
fra et element. For at tilknytte en hændelseshåndterer
kan du bruge metoden
off.
Syntaks
Sådan fjerner vi en hændelseshåndterer fra et element,
som første parameter overføres en eller flere hændelser adskilt af
mellemrum som en streng, som andet - overfører vi en ekstra
filtrerende selektor for efterkommere inde i elementet
(den skal matche den, vi overførte til
metoden on, når vi knyttede
hændelseshåndtereren). For at fjerne alle delegerede hændelser,
overfør værdien '**'. Den anden parameter
er valgfri. Som tredje overfører vi hændelseshåndteringsfunktionen
(som vi knyttede), hvori hændelsesobjektet overføres, eller vi overfører false:
$(selektor).off(hændelser, [selektor], hændelseshåndterer(hændelsesobjekt));
Du kan bruge metoden off på en anden måde,
så overføres som første parameter et
JavaScript-objekt, hvor nøgler er hændelsestype, og
værdier er hændelseshåndteringsfunktioner, som vi tilføjede til
elementet:
$(selektor).off({'hændelsestype': handler}, [selektor]);
Vi kan blot overføre en parameter i form af
et objekt jQuery.Event:
$(selektor).off(hændelse);
Hvis du ikke overfører parametre til metoden, så fjerner vi alle tilknyttede hændelseshåndterere fra elementet:
$(selektor).off();
Eksempel
Lad os tilføje hændelseshåndteringsfunktionen
testFunc til afsnittene.
Men vi fjerner straks hændelseshåndtereren fra
det andet afsnit, dvs. et klik på det andet afsnit vil ikke
føre til noget (hvis vi udkommenterer den sidste
kodelinje, vil vi se, hvordan hændelsen udløses, og
ved klik på det andet afsnit):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // tilføjer hændelseshåndterer
$('#test2').on('click', {text: 'bbb'}, testFunc); // tilføjer hændelseshåndterer
$('#test2').off('click', testFunc); // fjerner hændelseshåndterer