Оскільки ми щойно говорили про події, зараз саме час згадати власні події. Усі події, про які ми говорили дотепер, є, так би мовити, “реальними” подіями. Події, що виникають у DOM на основі реальних речей, що трапляються, наприклад, клацання або натискання клавіші. Ці події можуть бути "ініційовані" штучно в jQuery. Наприклад, щоб "підробити" клік на кнопці, ви можете зробити:
$("#some-button").trigger("click");
Тоді будь-які обробники кліків, прив’язані до цієї кнопки, спрацюють так, ніби користувач дійсно натиснув на цю кнопку. Але що, якби ми це зробили:
$("#some-button").trigger("dance");
Що тоді трапляється? “Танець” - це не “справжня” подія. Але жодної помилки не буде викинуто. Так трапляється, що, мабуть, немає жодних обробників «танцю», прив'язаних до цієї кнопки. Але може бути, і це, по суті, те, що є власною подією. Подія з іменем, яке ви просто вигадуєте.
Чому ви це робите? Переважно організаційні причини. Можливо, вам подобається відокремлювати свій JavaScript, який обробляє події та дії, і ваш JavaScript, який обробляє дані та адміністративні матеріали. Це дуже розумно. Якби ця кнопка була, можливо, кнопкою «Зберегти налаштування», ви могли б просто запустити власну подію з назвою «зберегти налаштування», а в інших місцях є обробник, який чекає, коли ця подія спрацює, і фактично збереже дані. Це по суті те, що ми зробили на прикладі з відео.
Інший варіант використання спеціальних подій - створення загальних компонентів інтерфейсу. Я говорю про це в цьому дописі в блозі.
Можливо, ви створюєте ефект акордеону як компонент інтерфейсу. Аккордеон робить те, до чого всі акордеони, відкриває і закриває панелі при клацанні / натисканні. Ваш компонент інтерфейсу робить це дуже добре. Тепер розробник, який використовує цей акордеон, може мати особливі та унікальні речі, які вони хочуть з ним відбуватися. Скажімо, вони використовують акордеон для налаштування облікового запису, а коли користувач закриває панель, він хоче зберегти дані з елементів форми на цій панелі. Традиційною моделлю може бути те, що автор цього компонентного інтерфейсу акордеону пропонує функції зворотного виклику, коли ця дія відбувається. Коли ви ініціалізуєте акордеон, ви передаєте функції зворотного виклику, які ви хочете викликати, коли ці речі відбуваються. Це одна дорога, яку потрібно спустити. Іншою дорогою було б, щоб акордеон просто автоматично запускав власні події для всіх відповідних дій, які він робить.Коли ця панель закриється, вона може спрацювати apanelClosed
подія на самому елементі гармошки. Тоді розробники, які працюють з ним, могли просто прив’язати до цих подій. Це просто ще одна дорога, якою можна піти з організаційних причин, яка може бути досить елегантною.