无论如何,我正在使用jQuery创建一个库。我在div中有一个div和一张图片以及上一个/下一个按钮。按钮位于图片上方,我希望它们默认隐藏,当我将鼠标移到div上时淡入淡出,当我将鼠标移出div时淡出。问题是当我将鼠标从图片移动到按钮时,javascript将其注册为mouseout事件,即使我实际上没有留下保存图片和按钮的div。我快速地告诉你发生了什么:http://jsfiddle.net/7Ppbm/
有没有人能解决这个问题?感谢
答案 0 :(得分:3)
您应该使用hover
功能:
$("#button").hide();
$("#container").hover(function(){
$("#button").fadeIn();
},function(){
$("#button").fadeOut();
});
答案 1 :(得分:0)
你所缺少的是一个超时,它会让它一次又一次地消失。 另外,请注意使用jQuery 1.7.2
的新.on()
$("#button").fadeOut();
var timer;
$("#container img").on({
mouseover: function () {
clearTimeout(timer);
$("#button").fadeIn();
},
mouseout : function () {
timer = setTimeout(function () {
$("#button").fadeOut();
}, 100);
}
});
答案 2 :(得分:0)
为什么不用CSS过渡呢?除了IE< 10。 http://caniuse.com/#search=transition
您的示例已修改: http://jsfiddle.net/b4e4M/