5

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

3 回答 3

6

你几乎拥有它..

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

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

虽然,绑定到document是不赞成的。它模仿了由于这个原因(以及其他一些原因)已被弃用的.live方法

引用

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


请参阅http://api.jquery.com/on/上的文档

报价

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

于 2012-12-07T21:13:46.440 回答
2

根据 jQuery API,“事件”是空格分隔的

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

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

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

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

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

于 2012-12-07T21:13:29.510 回答
1

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

$(document).on('mouseout click', '#tip', function() {
    $('#tip .ttip').show();
});
于 2012-12-07T21:13:38.920 回答