off მეთოდი
off მეთოდი საშუალებას აძლევს ელემენტს გაუთიშოს მოვლენის დამმუშავებელი.
დამმუშავებლის მისაბმელად შეგიძლიათ გამოიყენოთ
off მეთოდი.
სინტაქსი
ასე ვხსნით მოვლენის დამმუშავებელს ელემენტიდან,
პირველ პარამეტრად სტრიქონის სახით გადაეცემა
ერთი ან რამდენიმე მოვლენა, გამოყოფილი სფეისით,
მეორედ - გადავცემთ დამატებით ფილტრის სელექტორს
ელემენტის შიგნით არსებული შთამომავლებისთვის
(ის უნდა ემთხვეოდეს იმას, რაც ჩვენ გადავეცით
on მეთოდს, როდესაც ვამაგრებდით დამმუშავებელს).
ყველა დელეგირებული მოვლენის მოსახსნელად,
გადააწოდეთ მნიშვნელობა '**'. მეორე პარამეტრი
არაასახსნელია. მესამედ გადავცემთ დამმუშავებელ ფუნქციას
(რომელიც ჩვენ დავამაგრეთ), რომელშიც გადაეცემა მოვლენის ობიექტი
ან ვაწვდით false-ს:
$(სელექტორი).off(მოვლენები, [სელექტორი], დამმუშავებელი-ფუნქცია(მოვლენის ობიექტი));
შეგიძლიათ გამოიყენოთ off მეთოდი სხვაგვარად,
მაშინ პირველ პარამეტრად გადაეცემა
JavaScript-ის ობიექტი, სადაც გასაღებები არის მოვლენის ტიპი, ხოლო
მნიშვნელობები - დამმუშავებელი ფუნქციები, რომლებიც ჩვენ დავამატეთ
ელემენტს:
$(სელექტორი).off({'მოვლენის ტიპი': handler}, [სელექტორი]);
შეგვიძლია უბრალოდ გადავცეთ ერთი პარამეტრი
jQuery.Event ობიექტის სახით:
$(სელექტორი).off(მოვლენა);
თუ მეთოდს არ გადავცემთ პარამეტრებს, მაშინ ჩვენ ელემენტს გავუთიშავთ ყველა მიმაგრებულ დამმუშავებელს:
$(სელექტორი).off();
მაგალითი
მოდით, აბზაცებს დავუმატოთ დამმუშავებელი ფუნქცია
testFunc. მაგრამ მაშინვე ვხსნით დამმუშავებელს
მეორე აბზაციდან, ამგვარად, მეორე აბზაცზე დაწკაპუნება არაფერს
გამოიწვევს (თუ ჩვენ გავაკომენტარებთ კოდის ბოლო
სტრიქონს, დავინახავთ, როგორ სრულდება მოვლენა
მეორე აბზაცზე დაწკაპუნებისას):
<p id="test1">click1</p>
<p id="test2">click2</p>
function testFunc(event) {
alert(event.data.text);
}
$('#test1').on('click', {text: 'aaa'}, testFunc); // ვამატებთ დამმუშავებელს
$('#test2').on('click', {text: 'bbb'}, testFunc); // ვამატებთ დამმუშავებელს
$('#test2').off('click', testFunc); // ვხსნით დამმუშავებელს