Я знаю, что мы можем присоединить события с помощью функции jQuery on()
и снова удалить их с помощью off()
.
В существующем проекте я иногда встречаю код, похожий на этот:
$("#SomeId").off("click").on("click");
или иногда при использовании namespacing, аналогичного этому:
$("#SomeId").off("click.namespace").on("click.namespace");
Насколько я знаю, вы можете присоединить только одно событие к определенному пространству имен события.
Например, если я просто делаю on("click")
, он присоединяет мою указанную функцию, переписывает текущую функцию, назначенную, добавляя к событию "click".
Если я сделаю on("click.namespace")
, он добавит мою указанную функцию , перезаписав текущую функцию, назначенную, добавив к click.namespace
.
Какова точка, удаляющая какие-либо события путем привязки off("click")
к on("click)
, если on()
уже заменяет любые функции, назначенные указанному событию/событию .namespace?
Является ли это избыточным синтаксисом в нашем коде или есть причина, по которой я пропустил?
Изменить - Спасибо kapa
Я чувствую себя немного глупо сейчас, я исправил свои ошибочные знания выше. Выполняя on("click.namespace1")
несколько раз, я заметил, что объект data("events")
продолжал добавлять в массив событий click.
Я думаю, что отвечает на мой собственный вопрос. Вот почему можно использовать off("event.namespace")
, чтобы гарантировать, что к этому конкретному событию event/event.namespace ничего не привязано.