8

是否可以使用 jquery.on()方法而不是.delegate()在没有要监听的事件时使用?

根据.on()文档:

.on( 事件 [, 选择器] [, 数据] , 处理程序(eventObject) )

events参数不是可选的。

.on()/用于.delegate()动态添加的元素。

4

3 回答 3

8

您可以使用自定义事件:(它仍然是一个事件,但您的事件)

标记:

<div id='mePlease'>
 <div id='noWay'>Hi</div>
</div>

$('#mePlease').on('wacky','#noWay',function(){
   alert('wackyEnough');
});
$('#noWay').trigger('wacky');

但实际上,这可以通过一个简单的函数调用来完成。

于 2012-08-09T14:51:27.827 回答
6

这些函数的目的是将功能委托给事件;所以不,你不能从这些函数调用中省略 events 参数。

我怀疑您想要的是对页面加载(异步)之后加载的某些元素“做一些事情”,不是吗?也许您还需要对页面加载中已经存在的元素执行此操作?

在这种情况下,我建议您将声明包装在一个函数中,并在页面加载和异步调用完成后调用该函数。

于 2012-08-09T14:46:42.817 回答
0

由于.on()它的目的是将事件处理程序附加到某个元素,因此在没有事件的情况下使用它绝对没有意义。这就是为什么需要 event 参数。

从文档:

描述:将一个或多个事件的事件处理函数附加到选定元素。

于 2012-08-09T14:47:05.957 回答