【问题标题】:code works in js fiddle but not in dreamweaver or on server [closed]代码在js fiddle中有效,但在dreamweaver或服务器上无效[关闭]
【发布时间】:2012-12-03 23:13:29
【问题描述】:

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;
    })()
});
});

【问题讨论】:

    标签: javascript jquery hover jsfiddle spritely


    【解决方案1】:

    完全改变答案

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

    文件的结尾是:

    });​
    
    });
    

    注意无效字符。

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


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

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

    【讨论】:

    • @user1868086:很多人都这样做。我个人认为ready 的唯一有效用例是库。如果您控制script 元素的位置,只需将其放在页面底部,就在关闭</body> 标记之前。然后它将可以访问上面定义的所有元素(也就是说,所有元素)。这就是YUI folks recommendGoogle Closure 背后的开发人员。
    • @T.J.Crowder:我认为你一定看错了。所有相关的<script> 元素就在</body> 标记之前。
    • @ruakh:啊,我什至没有真正看到他网站的链接,所以我正在研究理论。谢谢。
    • @user1868086:查看和更新​​的答案(或在 ruakh's)。你的open_close.js 文件搞砸了。
    • @user1868086:但是有。在最后。根据您的文本编辑器,它们可能看起来不可见;您可以尝试转到文件的最后并点击“退格”和“删除”几次,然后重新输入最后几个 JavaScript 字符。
    【解决方案2】:

    我不确定这是否是 问题,但 Firefox 的错误控制台报告您在 open_close.js 末尾有一些垃圾字符。

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 2018-04-02
      • 2017-03-26
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多