【问题标题】:jquery mouseover event firing twicejquery mouseover 事件触发两次
【发布时间】:2013-12-09 10:38:10
【问题描述】:
    $(function(){
    $('#webs').mouseenter(function(){
        $('#websitehov').fadeIn('slow');
    });
    $('#webs').mouseleave(function(){
        $('#websitehov').fadeOut('slow');
    });
});

我知道对此有很多问题,但我已经尝试了其中的一些但仍然无法正常工作,我尝试了不同的事件处理程序,包括 .hover、.mouseover 和 .mouseenter。 图像悬停/悬停效果在进入时会触发多次,每当我在图像内移动鼠标时,这两个事件就会开始触发。 我找到了一种解决方案:

(function(){
$('#webs').hover(function(){
$('#websitehov').fadeIn('slow')
}, function() { });
});

但这仅适用于悬停而不是悬停,因为空函数是 mouseout 事件处理程序,idk 如果你可以覆盖它?

【问题讨论】:

  • 使用 .hover() 和回调 将是一个很好的解决方案。
  • 尝试了同样的结果,每次移动鼠标时仍然闪烁多次并触发,离开区号后继续再次触发一次:$(function(){ $('#webs ').hover(function(){ $('#websitehov').fadeIn('slow'); }, function(){ $('#websitehov').fadeOut('slow'); }); }) ;
  • 创建 fiddle 或发布更多代码,包括 html 和 css
  • 我发现了问题,将鼠标悬停在第一张图片上时触发的图片在另一张图片的前面,所以他们正在战斗

标签: javascript jquery html


【解决方案1】:

我能看到的唯一可能的问题是动画队列,在添加另一个之前清除动画队列

$(function () {
    $('#webs').hover(function () {
        $('#websitehov').stop(true, true).fadeIn('slow');
    }, function () {
        $('#websitehov').stop(true, true).fadeOut('slow');
    });
});

演示:Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2013-01-22
    • 1970-01-01
    • 2013-09-06
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多