jQuery-bind不能处理绑定hover事件

本文探讨了jQuery中hover事件为何无法直接通过bind方法绑定,并给出了正确的实现方式,即使用mouseenter和mouseleave事件。

转载来自:http://blog.sina.com.cn/s/blog_ad5c48810101e3mh.html

看这个例子:

$(document).ready(function(){

$('.some-class').bind({

hoverfunction(e) {

// Hover event handler

alert("hover");

},

click: function(e) {

// Click event handler

alert("click");

},

blur: function(e) {

// Blur event handler

}

});

});


 

奇怪的事情发生了,这里的 “hover” 事件完全没有反应。 而像 “click” 和 “blur” 这两个都能正常调用。

同时,如下的代码也是正常运行的:

$(".some-class").hover(function(){

// stuff

})

为什么 bind 不能绑定 hover 呢?

答案是:
应该使用 mouseenter 和 mouseleave 这两个事件来代替 (这也是 .hover() 函数中使用的事件) 所以完全可以直接像这样来引用:

$(document).ready(function(){

$('.some-class').bind({

mouseenter: function(e) {

// Hover event handler

alert("hover");

},

mouseleave: function(e) {

// Hover event handler

alert("hover");

},

click: function(e) {

// Click event handler

alert("click");

},

blur: function(e) {

// Blur event handler

}

});

});

因为 .hover() 是 jQuery 自己定义的事件… 是为了方便用户绑定调用 mouseenter 和 mouseleave 事件而已,它并非一个真正的事件,所以当然不能当做 .bind() 中的事件参数来调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值