转载来自:http://blog.sina.com.cn/s/blog_ad5c48810101e3mh.html
看这个例子:
$(document).ready(function(){
$('.some-class').bind({
hover: function(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
})
为什么
答案是:
应该使用 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中hover事件为何无法直接通过bind方法绑定,并给出了正确的实现方式,即使用mouseenter和mouseleave事件。

2760

被折叠的 条评论
为什么被折叠?



