Metoden off
Metoden off lar deg fjerne en hendelseshåndterer
fra et element. For å legge til en hendelseshåndterer
kan du bruke metoden
off.
Syntaks
Slik fjerner vi en hendelseshåndterer fra et element,
som første parameter overføres en eller flere hendelser
atskilt med mellomrom som en streng, som andre - overfører vi et ekstra
filtrerende selektor for etterkommere innenfor elementet
(den må samsvare med den vi overførte til
metoden on når vi la til
hendelseshåndtereren). For å fjerne alle delegerte hendelser,
overfør verdien '**'. Den andre parameteren
er valgfri. Som tredje overfører vi hendelseshåndterer-funksjonen
(som vi la til), som overfører hendelsesobjektet
eller vi overfører false:
$(selector).off(events, [selector], handler-function(event object));
Du kan bruke metoden off på en annen måte,
da overføres som første parameter et
JavaScript-objekt hvor nøkler er hendelsestype, og
verdier er hendelseshåndterer-funksjoner som vi la til til
elementet:
$(selector).off({'event type': handler}, [selector]);
Vi kan ganske enkelt overføre en parameter i form av
et jQuery.Event-objekt:
$(selector).off(event);
Hvis vi ikke overfører noen parametere til metoden, vil vi fjerne alle tilknyttede hendelseshåndterere fra elementet:
$(selector).off();
Eksempel
La oss legge til hendelseshåndterer-funksjonen
testFunc til avsnittene.
Men vi fjerner umiddelbart hendelseshåndtereren fra
det andre avsnittet, dermed vil klikk på det andre avsnittet ikke
føre til noe (hvis vi kommenterer ut den siste
kodelinjen, vil vi se hvordan hendelsen utløses og
ved klikk på det andre avsnittet):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // legger til hendelseshåndterer
$('#test2').on('click', {text: 'bbb'}, testFunc); // legger til hendelseshåndterer
$('#test2').off('click', testFunc); // fjerner hendelseshåndterer