Как создать пользовательское событие в jQuery - PullRequest
4 голосов
/ 13 мая 2011

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

Я бы хотел привязать \ жить к элементу с пользовательским 'myclick':

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

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

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

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

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

<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'?

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

Ответы [ 3 ]

2 голосов
/ 13 мая 2011

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

$('#somediv').trigger('myclick')
0 голосов
/ 15 мая 2011

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

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

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

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

0 голосов
/ 13 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...