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

4

你好,我想描述一个场景,但是不知道该如何实现。

我想将一个元素绑定到自定义的'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
这句话的意思是什么? - lonesomeday
我在这里看不到问题 - 你的问题描述了如何绑定自定义事件以及如何触发它。就是这样。 - Matt Ball
@rsplak,虽然我同意17%很低,但并不是所有这些问题都有解决OP问题的答案。 - Matt Ball
@Nadav:没什么大不了的。即使您发布一个您已经知道答案的问题的极端情况下,官方立场是什么:http://meta.stackexchange.com/questions/2706/ - Matt Ball
3个回答

2

.trigger() 是你要找的方法。它必须在你在 .bind() 中使用的相同 DOM 元素上调用。

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

0

0

正如Jeff所说,您需要在任何应该触发事件的逻辑中调用$('#somediv').trigger('myclick');。您在原始问题中的绑定示例看起来对我来说是正确的,因此那应该是您需要做的全部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接