$(document).ready(function(){
$("#menu a").hover(function(){
$(this).animate({opacity: 0.25}, function(){
$(this).animate({opacity: 1});
});
});
});
我将此效果应用到我的菜单中,因此当鼠标越过链接时会显示此淡入淡出效果,但当鼠标从中释放时,效果会再次播放。不应该。它只应该在鼠标悬停在链接上时播放一次,而不是在鼠标离开时再播放一次。
答案 0 :(得分:18)
.hover()
有两个回调,一个用于mouseenter
,另一个用于mouseleave
。
使用mouseenter
:
$(document).ready(function(){
$("#menu a").mouseenter(function() {
$(this).animate({opacity: 0.25}, function(){
$(this).animate({opacity: 1});
});
});
});
答案 1 :(得分:5)
使用 jQuery v1.7
尝试此操作$('#menu a').on({
mouseover: function() {
event.preventDefault();
$(this).animate({opacity: 0.25});
},
mouseout: function() {
event.preventDefault();
$(this).animate({opacity: 1});
}
});
答案 2 :(得分:2)
试试这个。在hoverout事件
上添加$(this).stop() $(document).ready(function () {
$("#menu a").hover(function () {
$(this).animate({ opacity: 0.25 }, function () {
$(this).animate({ opacity: 1 });
});
}, function () { $(this).stop(); });
});
答案 3 :(得分:1)
尝试:
$("#menu a").hover(
function () {
$(this).animate({opacity: 0.25}, function(){
$(this).animate({opacity: 1});
});
},
function () {
//do nothing
}
);
答案 4 :(得分:0)
你必须检查它是否得到相同的对象
示例:
$('#updateCart').on('mouseenter', function (event) {
if (event.handled !== true) { .....
//Put your code in here
}
}
答案 5 :(得分:0)
如果您想在悬停时触发一次,请改用mouseenter:
$("element").mouseenter(function(){
//event here
});