我想知道是否可以将多个动作组合到同一个on()
函数中?
我的代码:
$(document).on('mouseout', '#tip', function() {
$('#tip .ttip').show();
});
$(document).on('click', '#tip', function() {
$('#tip .ttip').show();
});
我尝试了以下方法,但它们都没有用。
$(document).on('mouseout, click', '#tip', function()
$(document).on({'mouseout', 'click} '#tip', function()
答案 0 :(得分:4)
你几乎拥有它..
您需要在事件之间使用空格
$(document).on('mouseout click', '#tip', function() {
$('#tip .ttip').show();
});
虽然绑定document
是不受欢迎的。它模仿因此原因而被弃用的.live
method(和其他一些)。
引用
为获得最佳性能,请将文档位置的委派事件尽可能靠近目标元素。避免对大型文档上的委派事件过度使用
document
或document.body
。
引用
on(events [,selector] [,data],handler(eventObject))
事件一个或多个以空格分隔的事件类型和可选命名空间,例如“click
”或“keydown.myPlugin
”。
答案 1 :(得分:2)
根据jQuery API,' events'是空格分开的
.on( events [, selector] [, data], handler(eventObject) )
events
:一个或多个以空格分隔的事件类型和可选命名空间,例如click
或keydown.myPlugin
。
selectorA
:选择器字符串,用于过滤触发事件的所选元素的后代。如果选择器为null或省略,则事件始终在到达所选元素时触发。
data
:要在事件中传递给处理程序的数据。触发事件时的数据。
handler(eventObject)
:触发事件时执行的函数。值false也允许作为简单返回false的函数的简写。
答案 2 :(得分:1)
我相信你可以像这样空间分开它们
$(document).on('mouseout click', '#tip', function() {
$('#tip .ttip').show();
});