2015-01-19 4 views
0

Я нашел код ниже в теме Wordpress, с которой я работаю. Я пытаюсь понять использование кода «testClick» в инструкции click.testClick. Если я удалю его, он будет работать одинаково. Он служит какой-либо цели? Слово testClick не существует нигде на сайте.Расширение функции «on click» как click.'something '?

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

<a href="#" class="test_click">Test Click</a> 

jQuery(document).ready(function(e) { 
    e("body").on("click.testClick", ".test_click", function() { 
    alert("clicked!"); 
    }) 
}); 

работает так же, как

jQuery(document).ready(function(e) { 
    e("body").on("click", ".test_click", function() { 
    alert("clicked!"); 
    }) 
}); 
+0

Я думаю, что это event.target. Я нашел этот документ http://api.jquery.com/event.target/. – lighter

ответ

0

Это event namespace. Пространства имен событий позволяют удалять обработчики событий без удаления всех обработчиков событий на элемент:

название события может быть квалифицировано пространствами имен событий, которые упрощают удаление или инициирования события. Например, «click.myPlugin.simple» определяет как myPlugin, так и простые пространства имен для данного события события . Обработчик события клика, прикрепленный через эту строку, может быть удален с .off ("click.myPlugin") или .off ("click.simple") без , что мешает другим обработчикам кликов, прикрепленным к элементам. Пространства имен аналогичны классам CSS, поскольку они не являются иерархическими; только одно имя должно совпадать. Пространства имен, начинающиеся с символа подчеркивания, равны , зарезервированным для использования jQuery. Вероятно, это будет использоваться авторами плагинов, которые хотят обрабатывать задачи по-разному в зависимости от используемого пространства имен событий.

Пример:

<button>display event.namespace</button> 
<p></p> 

<script> 
$("p").on("test.something", function(event) { 
    alert(event.namespace); 
}); 
$("button").click(function(event) { 
    $("p").trigger("test.something"); 
}); 
</script> 
+0

Спасибо, отличный ответ. Имеет смысл. – MikeC