Как создать пользовательское событие в jQuery

#jquery #jquery-plugins

#jquery #jquery-плагины

Вопрос:

Привет, я хотел бы описать сценарий, который я хотел бы выполнить, и я понятия не имею, как

Я хотел бы привязать live к элементу пользовательский ‘myclick’:

 $('#somediv').bind('myclick', function() {});
  

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

Я знаю, как вызвать пользовательское событие для определенного элемента (http://api.jquery.com/category/events/event-object /)

Пояснения к вопросу:
Я определю, что означает myclick (например, 3 щелчка подряд по этому элементу)
как я могу определить, когда это произошло в ‘somediv’?
Могу ли я каким-то образом зарегистрироваться через jquery для элементов, которые привязывались к ним live? если да, то каким образом?

полный пример:

 <html>
<head>
   <script to include jquery>
   <script to include MYCODE.js>

   <script>
     $('#somediv').bind('myclick', function() { alert('myclick'); } );
   </script>

   <body>
      <div id='somediv'></div>
   </body>
<head>
</html>
  

итак, мой вопрос: что делает MYCODE.js содержать?
как он может определить, что какая-то пользовательская логика, которую он определяет, произошла в ‘somediv’?

Спасибо за вашу помощь

Комментарии:

1. Хм, в чем вопрос?

2. Я не вижу здесь проблемы — в вашем вопросе описывается как привязка пользовательского события, так и способ его запуска. Вот и все.

3. @rsplak хотя я согласен, что 17% — это мало, не на все эти вопросы есть ответы, которые решают проблемы операционной системы.

4. @Nadav: ничего особенного. Официальная позиция по этому вопросу (даже в крайнем случае, когда вы публикуете вопрос, на который вы уже знаете ответ! ): meta.stackexchange.com/questions/2706

Ответ №1:

.trigger() это метод, который вы ищете. Оно должно вызываться для того же элемента DOM, который вы использовали в .bind()

 $('#somediv').trigger('myclick')
  

Ответ №2:

Точно так, как говорит Джефф, вам нужно вызвать $('#somediv').trigger('myclick'); любую логику, которая должна вызвать запуск события. Ваш пример привязки в вашем исходном вопросе мне кажется правильным, так что это должно быть все, что вам нужно сделать.

Ответ №3:

В итоге я написал плагин для этого — хорошее место для начала находится наhttp://blogs.sitepoint.com/how-to-develop-a-jquery-plugin / и http://starter.pixelgraphics.us /

Я написал свой плагин и разместил его здесь, если кому-то интересно.

http://code.google.com/p/jquery-touch-area/

Наслаждайтесь