0

http://jsfiddle.net/reveries/9Dt7n/ http://www.reveriesrefined.com/test/

当您将鼠标悬停在门上时,它应该动画......并且在 jsfiddle 中它工作得很好,但是一旦我将此代码放在我的网站上,它就会停止工作。您仍然会看到图像,但是当您将鼠标悬停在它上面时,没有动画。我想知道js fiddle是否有一些我不包括的隐藏代码?

jQuery (w/srpitely)

var iFrames = 23,
iFps = 24,
bRewind = false,
iStartFrame = -1,
bAnimating = false,
stopAndRewind = function(oAnim) {
    iStartFrame = ~iStartFrame ? -1 : iFrames - 2;
    bRewind = !bRewind;
    bAnimating = false;
    oAnim.spStop();
};
$("#door").on("mouseenter mouseleave", function() {
var iCurFrame = iStartFrame;
if ($._spritely.instances && $._spritely.instances[$(this).prop("id")])
{
    if (bAnimating)
    {
        iCurFrame = $(this).spGet("current_frame");
        stopAndRewind($(this));
    }
    $(this).destroy();
}
bAnimating = true;
$(this).sprite({
    fps: iFps,
    no_of_frames: iFrames,
    start_at_frame: iCurFrame,
    rewind: bRewind,
    on_frame: (function() {
        var o = {},
            i = 1;
        if (!bRewind)
        {
            i = iFrames - 2;
        }
        o[i] = stopAndRewind;
        return o;
    })()
});
});
4

2 回答 2

1

完全改变答案

在您的网站上,您的文件中有无效字符/test/javascript/open_close.js。因此,该文件中的任何内容都不会起作用,因为解析器会阻塞它们。

文件的结尾是:

});​

});

注意无效字符。

如果您从 jsFiddle 复制并粘贴,那可能就是它们的来源。jsFiddle 的编辑器字段中有这些奇怪的字符,我不知道为什么。过去我曾多次注意到它。


实际查看网站之前的原始答案(错过了链接)

您已将 jsFiddle 设置为将您的代码包含在onload处理程序中,因此它发生在页面加载周期的后期,一旦所有 DOM 元素都存在(并且图像已下载等)。(这是 jsFiddle 的默认设置,我不能告诉你为什么,你不是第一个与它发生冲突的人。)如果你自己的页面有脚本只是内联,特别是如果script标签在它使用的元素之上, 那就是问题所在。

于 2012-12-03T23:17:01.710 回答
1

我不确定这是否问题所在,但 Firefox 的错误控制台报告您在open_close.js.

于 2012-12-03T23:22:29.510 回答