如何在jQuery中创建自定义事件

时间:2011-05-13 14:45:40

标签: jquery jquery-plugins

您好 我想描述一个我想要完成的场景,我不知道如何

我想将\ 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'上?

感谢您的帮助

3 个答案:

答案 0 :(得分:2)

.trigger()是您正在寻找的方法。必须在.bind()

中使用的相同DOM元素上调用它
$('#somediv').trigger('myclick')

答案 1 :(得分:0)

正如杰夫所说,你需要在任何导致事件触发的逻辑中调用$('#somediv').trigger('myclick');。您原始问题中的绑定示例对我来说是正确的,因此您应该只需要这样做。

答案 2 :(得分:0)

我最后为此写了一个插件 - 一个好的起点是http://blogs.sitepoint.com/how-to-develop-a-jquery-plugin/http://starter.pixelgraphics.us/

我已经编写了我的插件,如果有人有兴趣,请将它放在这里。

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

享受