2010-08-05 64 views
0

有什么办法可以为页面上的不同事件执行相同的代码吗?JQuery为多个事件(例如:悬停和点击事件)相同的功能

$('.class1').hover(function() { 
    some_function(); 
}); 

$('.class1').click(function() { 
    some_function(); 
}); 

,而不是做一些事情,如:

$('.class1').click.hover(function() { 
    some_function(); 
}); 
+0

请重新考虑您的问题的语法错误,请。 – simplyharsh 2010-08-05 10:00:10

+0

[jquery combine event functions]的可能重复(http://stackoverflow.com/questions/3279251/jquery-combine-event-functions) – jAndy 2010-08-05 10:01:51

+0

这些不是不同的元素,而是不同的事件。 – 2010-08-05 10:03:02

回答

5

虽然bind是去,如果你想在同一点附加的事件处理程序的方式你的代码使用相同的选择器,如果你想在不同的点附上它们或者使用不同的选择器,你总是可以使用一个命名的函数,而不是匿名的一个:

function someWrappingFunction() { 
    some_function(); 
} 

$('.class1').hover(someWrappingFunction); 

$('.class1, .anotherClass').click(someWrappingFunction); 
+0

优秀。谢谢。另请注意,如果使用'$(document).ready(function(){// event handlers});',则不需要包装函数。只是一个功能。 – khaverim 2014-05-17 01:35:24

11

使用bind()

$('.class1').bind("click hover", function() { 
    some_function(); 
});