jquery - 对任何事件执行效果

时间:2011-11-29 01:29:08

标签: javascript jquery

我在页面中有5个元素。 我使用类名$('.class')

选择了它们

我正在尝试为所选元素执行一个功能,而不管事件(点击或悬停或水)。

例如:

$('.class').hover(function(){definition1});  
$('.class').click(function(){definition1});

我不希望有2个单独的事件,如上面的2,而是我想要执行该功能,无论其悬停或点击事件。

3 个答案:

答案 0 :(得分:3)

$('.class').bind('click mouseenter', function() {
    // Go nuts.
});

(如果使用jQuery> = 1.7,则将bind()on()交换。)

请记住,hover()的第二个参数是针对mouseleave事件的,您没有在此处写过任何内容。

如果你想覆盖大多数事件,请传入'模糊焦点焦点焦点加载调整大小滚动卸载单击dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error'作为第一个参数。

你也可以通过迭代以on开头的属性来尝试用代码检测它们,但这对我来说听起来太脆弱了。

答案 1 :(得分:2)

要将绑定多个事件绑定到jQuery 1.7及更高版本中的一个元素,您可以通过用空格分隔事件名称来执行以下操作:

jQuery('.class').on('click hover mousenter mouseleave', function(event){
    // do what you need to do
});

,您可以在jsfiddle中看到。

但是:要小心,因为你可以轻松点击事件(超过必要和绰绰有余)。通过绑定这么多事件,可能会不必要地调用某些事件(如上例所示,当鼠标光标离开它悬停的元素时,代码将被触发两次)。

答案 2 :(得分:0)

如果你不想在没有任何事件的情况下执行某项功能,请将其放入

$(function(){
    function test(){definition1}
});

然后在html中

<body onload="test();">