【问题标题】:Javascript loading locally but not on serverJavascript 在本地加载但不在服务器上
【发布时间】:2012-05-18 10:09:18
【问题描述】:

我查看了类似的主题,但尚未找到解决此问题的方法。

该网站在我的本地计算机 (Mac) 上运行良好,但我通过 FTP(由 1&1 托管)上传了一个网站,当我在浏览器(最新的 Chrome/Firefox/Safari)中查看该网站时,脚本不是加载图像滑块 (AnythingSlider)。

View the website

抱歉,如果在其他地方回答了这个问题。

【问题讨论】:

  • 您的网站上有 3 个 JS 错误。检查控制台。
  • 你为什么用这个?
  • 您还没有创建 dom 就绪事件...在脚本块中使用 defer 选项...您的代码将在从服务器加载完所有 js 文件后运行
  • 我同意 Dasarp,因为你的路径没问题,我检查了并且我也在任何东西滑块上显示了错误......但是当我复制那个 js 源(任何东西滑块)并粘贴它时,控制台它运行好的,我有任何东西在工作,因此它必须是 js 使用的一些资源并且尚未加载

标签: javascript anythingslider


【解决方案1】:

检查你的脚本你有以下错误:

Uncaught TypeError: Object [object Object] has no method 'anythingSlider'

您需要删除第二个 jQuery 调用:

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

这将防止 jQuery “重新启动”,从而防止您丢失 anythingSlider 函数。

【讨论】:

  • 关注window.jQuery || 部分 -> 这个包含不会造成任何损害,因为如果存在现有的 jQuery,它会首先检查,并且只有在没有 jQuery 时才包含新的 jQuery -> 主要问题是包含在第 155 行。
  • 是的,第 153 行和第 155 行的包含应该被删除,window.jQuery 检查应该是安全的:stackoverflow.com/questions/1014203/…
  • 大家好,感谢您的帮助。也许你能告诉我为什么,如果你再次查看spiritdigital.co.uk/CV/index.html,AnythingSlider 导航的两个中间按钮需要一秒钟才能返回到它们的正确位置?我已经浏览了页边空白等,但没有任何线索,谢谢。
【解决方案2】:

第 155 行:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

第 20 行:

<script src="js/libs/jquery-1.7.2.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>

不要两次包含 jQuery。第 155 行的 jquery 包含在anyslider 之后。所以它正在重置 jquery 对象(它不再有 anythinslider)。删除此行 155 jquery 并像这样更改第 34 行

<script>    
    $(document).ready(function(){
        $('#slider').anythingSlider();
    });
</script>

【讨论】:

  • 我认为 OP 不需要更改 $(function(){..。这对我来说似乎完全有效。
  • 是的$(function(){}$(document).ready(function(){} 的一种捷径,但它有时会造成麻烦……最好是安全而不是抱歉……
  • @Curt 你能解释一些更具体的吗?
  • @SarveshKumarSingh 你对此有什么参考吗?我非常频繁地使用$(function(),因此有兴趣了解有关此的一些事实。
  • 同意这里,不要重新加载 jquery
【解决方案3】:

*老兄!你在用你的脚本和 css 做什么*
1.我同意生硬。
有 4 个地方包含了 jquery,而不是任何地方都检查了现有 jquery 的可用性。
2.我检查了你所有的脚本文件都正确加载。所以问题不在于加载文件。有了它,您正在使用不正确的网址来加载您的脚本。 3.finally 你应该使用 $(document).ready() 事件来处理 dom 就绪后需要执行的任何事情

【讨论】:

  • 谢谢,是的,我完全同意,代码有点乱。感谢您提供有关 dom 就绪提示的提示。
【解决方案4】:

试试这个代码

<script defer type="text/javascript">
    // DOM Ready
    $(document).ready(function () {
        $('#slider').anythingSlider();
    });
</script>

【讨论】:

  • 我正要给出这个答案。
  • 这是做什么的?我之前没见过defer
  • @Johntor 页面中解析完所有js代码(引用的js文件)后,defer块将执行
  • OP 的当前代码也是如此。这不会解决问题。检查控制台。
  • 谢谢! $(document).ready() 没有正确处理这个?我从来没有遇到过这样的问题
猜你喜欢
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 2018-04-11
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多