在jQuery上结合多个动作()

时间:2012-12-07 21:10:54

标签: javascript jquery html css

我想知道是否可以将多个动作组合到同一个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()

3 个答案:

答案 0 :(得分:4)

你几乎拥有它..

您需要在事件之间使用空格

$(document).on('mouseout click', '#tip', function() {
    $('#tip .ttip').show();
});

虽然绑定document是不受欢迎的。它模仿因此原因而被弃用的.live method和其他一些)。

引用

  

为获得最佳性能,请将文档位置的委派事件尽可能靠近目标元素。避免对大型文档上的委派事件过度使用documentdocument.body


请参阅http://api.jquery.com/on/

上的文档

引用

  

on(events [,selector] [,data],handler(eventObject))
  事件一个或多个以空格分隔的事件类型和可选命名空间,例如“click”或“keydown.myPlugin”。

答案 1 :(得分:2)

根据jQuery API,' events'是空格分开的

  

.on( events [, selector] [, data], handler(eventObject) )

     

events:一个或多个以空格分隔的事件类型和可选命名空间,例如clickkeydown.myPlugin

     

selectorA:选择器字符串,用于过滤触发事件的所选元素的后代。如果选择器为null或省略,则事件始终在到达所选元素时触发。

     

data:要在事件中传递给处理程序的数据。触发事件时的数据。

     

handler(eventObject):触发事件时执行的函数。值false也允许作为简单返回false的函数的简写。

答案 2 :(得分:1)

我相信你可以像这样空间分开它们

$(document).on('mouseout click', '#tip', function() {
    $('#tip .ttip').show();
});