Метад 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); // выдаляем апрацоўшчык