2013-04-24 3 views
1

Недавно я нашел код, который выглядел как этотпользовательское событие .bind ('click.myclick', function() {//}); и отвязать(), а

$('.mybuttons').unbind('click.myclick'); 
$('.mybuttons').bind('click.myclick', function(){ 
    // do something 
}); 

Он реагирует на событие щелчка, чтобы выполнить // do something. И что было для меня большим интересом, было то, что он не мешает с другими событиями кликов. Он не отвязывает их вообще.

Я не знал, что событие clickMyclick могло бы функционировать как именованное событие click.

Я просмотрел api.jquery.com, и я не вижу упоминания об этом при bind. Может кто-нибудь просветить меня или указать онлайн-документацию, где это описано? Я провел несколько тестов, и если . был заменен другим персонажем, он больше не работает, так это значит, что myclick является свойством события?

ответ

9

Это называется событием с именами. Путем namespacing события вы можете выборочно отменить только обработчики, которые были связаны с использованием пространства имен для любого события или определенных событий.

http://api.jquery.com/on/#event-names

$(element).on("click.mynamespace", handler); 
$(element).on("change.mynamespace", handler); 
$(element).on("mouseenter.mynamespace mouseleave.mynamespace", handler); 
$(element).off(".mynamespace"); // unbind all the above events at once, without affecting others 

это обычно используется в плагинах, чтобы сделать события и очистки легче управлять.

+0

ничего себе, это здорово! Сайт jQuery охватывает это в своей документации? Я хочу прочитать его еще немного. – PrimeLens

+1

Раздел в приведенной ниже ссылке объясняет это немного, это объясняет это немного больше в разделе «События с именами» http://learn.jquery.com/events/event-basics/ –

+0

есть все мои возвышения – PrimeLens

Смежные вопросы