animationEnd / .removeClass在Firefox中无法正常运行

时间:2014-06-30 16:12:16

标签: javascript css firefox

我试图在Javascript动画结束时删除一个类,它在Chrome中工作正常但在Firefox中不起作用。

应该发生的事情是在mouseenter上,一个类(.shine)被添加到另一个类(greentile)。 .shine在CSS中播放精灵动画,然后Javascript将其从greentile中删除。除了Firefox .shine之外,意味着动画只会播放一次而不会再播放。

$(".greentile").bind("webkitAnimationEnd msAnimationEnd oAnimationEnd animationEnd", function () 
{
    $(this).removeClass("shine");
});

$(".greentile").mouseenter(function () 
{
    $(this).addClass("shine");
});

这很简单,我觉得它应该不是问题,而且非常令人沮丧。 Firefox Inspector显示鼠标中心仍然被触发,这让我相信它根本就不会删除.shine。我也尝试在AnimationEnd上更改和检测前缀以获得兼容性,我在这里和其他地方看过几十个相关或半相关的问题(比如Github,Doctype,CSS Tricks),我已经仔细阅读了w3schools,javascript文档和Firefox文档,我仍然无法弄明白。

我对网络开发很新,所以如果我忽略了一些显而易见的事情,请原谅我。 感谢

修改:此处有一个jFiddle,表明它正在运行。

1 个答案:

答案 0 :(得分:2)

事件的名称区分大小写。 Firefox会收听正式名称animationend(请注意小写E!),而不是旧版mozAnimationEnd