2012-01-25 36 views
3

链接的jsfiddle:http://jsfiddle.net/crismanNoble/gqFdH/2/.mouseover()事件怪怪

基本上SVG不断变化的颜色而没有触发.mouseout事件。

$(function() { 
    $(".icon") 
    .mouseover(function() { 
       var colors = ["#6F216C", "#F34B0D", "#C50102", "#5DA537", "#F1D81B"]; 
       var pick = Math.floor(Math.random()*5); 
       var color = colors[pick]; 
       $(this).children().css('fill',color); 
       }) 
    .mouseout(function() { 
       $(this).children().css('fill','black'); 
    }); 
}); 
+0

不在我的浏览器中... – Boldewyn

+0

我在Greg Pettit的建议后更新了小提琴。原稿:http://jsfiddle.net/crismanNoble/gqFdH/2/ – Crisman

+0

这将是很好的提及更新;当你打开它时会感到困惑,并且它可以正常工作。 – Vlad

回答

7

改为使用.mouseenter().mouseleave()

小提琴:http://jsfiddle.net/gqFdH/5/

不去看API文档,我怀疑.mouseover触发任何时候鼠标移过(不只是进入)的区域。但我可以做到这一点。我知道进入和离开工作。

+1

是的,悬停是结合mouseenter和mouseleave的别名。使用任何你喜欢的!乐意效劳。 –

+1

鼠标悬停事件与mouseenter事件相反。这可能会导致类似问题,尤其是对于元素。 –