Метад off

Метад off дазваляе адвязаць апрацоўшчык падзей ад элемента. Каб прывязаць апрацоўшчык можна скарыстацца метадам off.

Сінтаксіс

Так мы выдаляем апрацоўшчык падзей у элемента, у якасці першага параметра ў выглядзе радка перадаецца адна ці некалькі падзей падзеленых прабелам, другім - перадаем дадатковы фільтруючы селектар нашчадкаў унутры элемента (ён павінен супадаць з тым, што мы перадавалі ў у метад on, калі прымацоўвалі апрацоўшчык). Каб выдаліць усе дэлегаваныя падзеі, перадайце значэнне '**'. Другі параметр неабавязковы. Трэцім перадаем функцыю-апрацоўшчык (якую мы прымацоўвалі), у якую перадаецца аб'ект падзеі ці перадаем false:

javascript$(селектар).off(падзеі, [селектар], функцыя-апрацоўшчык(аб'ект падзеі));

Можна скарыстацца метадам off па-іншаму, тады ў першы параметр перадаецца аб'ект JavaScript, дзе ключы - тып падзеі, а значэнні - функцыі-апрацоўшчыкі, якія мы дадавалі да элемента:

javascript$(селектар).off({'тып падзеі': handler}, [селектар]);

Можам проста перадаць адзін параметр у выглядзе аб'екта jQuery.Event:

javascript$(селектар).off(падзея);

Калі не перадаваць метаду параметры, то мы адвяжам ад элемента ўсе прымацаваныя апрацоўшчыкі:

javascript$(селектар).off();

Прыклад

Давайце да абзацаў дадамо функцыю-апрацоўшчык testFunc. Але адразу ж выдалім апрацоўшчык у другога абзаца, такім чынам, клік па другім абзацы не будзе ні да чаго прыводзіць (калі ж мы закаменцім апошнюю радок кода, то ўбачым як падзея спрацоўвае і па кліку на другі абзац):

html<p id="test1">click1</p>
<p id="test2">click2</p>
javascriptfunction testFunc(event) {
  alert(event.data.text);
}

$('#test1').on('click', {text: 'aaa'}, testFunc); // дадаем апрацоўшчык

$('#test2').on('click', {text: 'bbb'}, testFunc); // дадаем апрацоўшчык
$('#test2').off('click', testFunc); // выдаляем апрацоўшчык

Глядзіце таксама

  • метад on,
    які дазваляе прывязаць апрацоўшчык падзей да элемента
  • метад one,
    які дазваляе падзеі спрацаваць адзін раз, а затым аўтаматычна выдаліць апрацоўшчык