可以将hover和click功能合并成一个吗,例如:
click:
$('#target').click(function() {
// common operation
});
悬停:
$('#target').hover(function () {
// common operation
});
它们能合并成一个函数吗?
谢谢!
可以将hover和click功能合并成一个吗,例如:
click:
$('#target').click(function() {
// common operation
});
悬停:
$('#target').hover(function () {
// common operation
});
它们能合并成一个函数吗?
谢谢!
使用基本编程组合:创建一个方法,并将同一个函数作为回调传递给click
和hover
。
var hoverOrClick = function () {
// do something common
}
$('#target').click(hoverOrClick).hover(hoverOrClick);
第二种方法:使用bind
on
:$('#target').on('click mouseover', function () {
// Do something for both
});
jQuery('#target').bind('click mouseover', function () {
// Do something for both
});
使用mouseover而不是hover。
$('#target').on('click mouseover', function () {
// Do something for both
});
$("#target").hover(function(){
$(this).click();
}).click(function(){
//common function
});
.bind()
或.live()
,取决于哪个更合适,但不需要给函数命名:$('#target').bind('click hover', function () {
// common operation
});
如果您需要对许多元素进行此操作(除非元素发生更改,否则对于IE没有太大意义):
$('#target').live('click hover', function () {
// common operation
});
注意,这只会绑定第一个hover参数,即mouseover
事件,并不会将任何东西挂钩到mouseleave
事件上。
var hoverAndClick = function() {
// Your actions here
} ;
$("#target").hover( hoverAndClick ).click( hoverAndClick ) ;
你也可以使用bind:
$('#myelement').bind('click hover', function yourCommonHandler (e) {
// Your handler here
});
.bind()
已被弃用。自jQuery 1.7以来,它已被.on()
方法取代,用于将事件处理程序附加到文档,因此其使用已经不再建议。请参考:http://api.jquery.com/bind/ - Hastig Zusammenstellen $("#target").on({
hover: function(){
//do on mouse hover
},
click: function(){
//do on mouse click
}
});