当没有要收听的事件时,是否可以使用jquery .on()
方法而不是.delegate()
?
根据.on()
文档:
.on(events [,selector] [,data],handler(eventObject))
events
参数不是可选的。
.on()
/ .delegate()
的使用适用于动态添加的元素。
答案 0 :(得分:8)
您可以使用自定义事件:(它仍然是一个事件,但是您的事件)
标记:
<div id='mePlease'>
<div id='noWay'>Hi</div>
</div>
$('#mePlease').on('wacky','#noWay',function(){
alert('wackyEnough');
});
$('#noWay').trigger('wacky');
但实际上,这可以通过一个简单的函数调用来完成。
答案 1 :(得分:6)
这些功能的目的是将功能委托给事件;所以不,你不能省略这些函数调用中的events参数。
我怀疑你想要的是对在页面加载(异步)之后加载的一些元素“做什么”,不是吗?也许你还需要对已经存在 on page-load?
的元素做这些事情在这种情况下,我建议你将声明包装在一个函数中,并在页面加载和异步调用完成后调用该函数。
答案 2 :(得分:0)
由于.on()
的目的是将事件处理程序附加到某个元素,因此在没有事件的情况下使用它是完全没有意义的。这就是为什么需要事件参数。
来自doc:
描述:将一个或多个事件的事件处理函数附加到所选元素。