Соглашения об именах пользовательских событий jquery

Итак, что это такое?

Я имею в виду, что я знаю, что существует пространство имен, но если имя моего события слишком очевидно, скажем submit, то просто добавление пространства имен submit.myns не предотвращает его запуск при запуске стандартного submit.

Хорошо, я знаю, submit - неплохой пример, но если я хочу использовать то же имя, что и некоторый плагин, который я использую? Когда у меня есть большой сайт, с множеством настраиваемых событий и множеством плагинов, это может быть проблемой, особенно если я хочу, чтобы имена событий были простыми и значимыми.

Итак, вы используете какие-то соглашения, например префиксы /postfixes (например, myns:event/myns_event)? Или, может быть, я слишком обеспокоен, и мои беспокойства необоснованны?

EDIT:

Пространства имен велики, если вам нужно группировать ограниченные события для легкого развязывания. Но способ, которым он работает, не может быть уверен, что обработчик click.my запускается только click.my. Для этого мы должны называть его другим, например my_click - тогда мы сохраняем значащее имя, у нас есть информация о том, что это наше событие (и, скорее всего, кто-то его использует), и мы по-прежнему можем использовать стандартное пространство имен имен.

Некоторый код, чтобы увидеть различия: http://jsfiddle.net/h2kuN/1/

Ответы

Ответ 1

Namespacing решает эту проблему — но , только если все используют его.

Вы можете связать и запустить christmas.adam для своего сезонного плагина, и я могу связать и запустить christmas.bennett, и мы не будем вмешиваться. Но если кто-то приходит и запускает christmas, тогда оба наших плагина будут запущены.

Это происходит потому, что если вы привязываете обработчик к event.namespace, то запуск event приведет к срабатыванию вашего обработчика. Это не ясно в документации API jQuery, но это верно в отношении jQuery 1.7.1.

Таким образом (помимо простого удаления сразу нескольких обработчиков), пространство имен служит для защиты другого кода, а не вашего.