Off () - видалення обробників події

C допомогою цього методу можна видалити з обраних елементів відразу кілька різних обробників подій, встановлених на різні типи подій.

  • evenst - об'єкт, в якому потрібно перерахувати типи подій і відповідні їм видаляються обробники. Здається в форматі. де events-i і handler-i відповідають параметрам events і handler в першому варіанті методу (описаному вище).
  • selector - селектор, який повинен збігатися з селектором переданим в метод .on () при призначенні обробника.

Метод .off () видаляє обробники подій, які були призначені методом .on (). Конкретні обробники подій можуть бути видалені з елемента шляхом подання комбінації імен подій, простору імен, селектор або назвою обробника.

Якщо ви пишете плагін або працюєте з об'ємним кодом, над яким працюють інші люди, бажано при установці обробників подій використовувати простір імен, щоб надалі можна було безболісно видаляти з елементів свої обробники, не зачіпаючи чужих. Якщо вказати тільки простір імен: '.myPlagin'. то з обраних елементів будуть видалені обробники всіх типів подій, з зазначеним простором імен.

Щоб видалити делеговані обробники, необхідно вказувати параметр selector. в точності збігається з таким же параметром, використаним в методі .on () при установці видаляється тепер обробника. Якщо потрібно видалити з елементів все делеговані обробники, не зачіпаючи обробники, встановлені безпосередньо, слід в параметрі selector вказати специфічне значення - '**' (дві зірочки).

Також конкретний обробник можна видалити, вказавши ім'я функції в аргументі handler. але слід бути обережним, якщо при його установці використовувалася $ .proxy () або подібні механізми. Це пов'язано з тим, що для видалення конкретних оброблювачів, jQuery порівнює специфічні id функцій, які будуть збігатися для функцій, створених за допомогою $ .proxy (). У зв'язку з цим, з елементів можуть бути видалені обробники, які ви не планували видаляти. Убезпечити себе від цієї проблеми можна за допомогою використання простору імен.

Як і в методі .on () ви можете передавати події як об'єкт, замість роздільного вказівки події і обробника в якості аргументів. Ключами в такому об'єкті є подія, події або простору імен, а значеннями функція-обробник або спеціальне значення false.

За допомогою кнопок будемо призначати або видаляти обробник події click жовтої кнопці. Якщо обробник події призначений, то при кліці по жовтій кнопці будемо показувати прихований блок.

Схожі записи

Схожі статті