jsfiddle上的代码相同,但不会在我的服务器上运行?

我很困惑。 我只是试图测试一个jquery(simpleselect)并在jquery上运行正常,但是当我将它上传到我的服务器时…完全不起作用! 我发誓它的代码相同,但也许新鲜的眼睛可以帮助。 我在这里想念的是什么?

这是我上传的代码:

      $("#currency-select").simpleselect({ fadingDuration: 500, containerMargin: 100, displayContainerInside: "document" });     USD EUR GBP CAD AUD CHF CZK DKK HKD JPY NZD NOK PLN SGD SEK ILS MXN TWD PHP THB    

这是JSfiddle

请注意,JSfiddle具有我从上面的代码中完全复制/粘贴的外部css和js资源。

在JSfiddle页面上,下拉列表已格式化并具有淡入淡出效果。 在我的服务器上,它有点格式化,没有淡入淡出。

我已将文件上传到我的服务器,以便您查看。 链接

参考

在文档“准备就绪”之前,页面无法安全操作。 jQuery为您检测这种准备状态。 包含在$( document ).ready()只有在页面文档对象模型(DOM)准备好执行JavaScript代码后才会运行。 包含在$( window ).load(function() { ... })将在整个页面(图像或iframe)(而不仅仅是DOM)准备好后运行。

将代码包装在文档就绪处理程序中。

指定DOM完全加载时要执行的函数。

  

head标记中的脚本在执行时对您的DOM一无所知。 您应该在关闭标记之前移动 (在加载DOM之后),o将您的代码包装在文档就绪处理程序中:

  

关闭标签之前移动脚本是更好的恕我直言。

设置文档就绪

 $( document ).ready(function() { $("#currency-select").simpleselect({ fadingDuration: 500, containerMargin: 100, displayContainerInside: "document" }); }); 

在文档“准备就绪”之前,页面无法安全操作。 jQuery为您检测这种准备状态。 包含在$(document).ready()中的代码只有在页面文档对象模型(DOM)准备好执行JavaScript代码后才会运行。 包含在$(window).load(function(){…})中的代码将在整个页面(图像或iframe)(而不仅仅是DOM)准备好后运行。

阅读更多相关信息

 $( document ).ready(function() { $("#currency-select").simpleselect({ fadingDuration: 500, containerMargin: 100, displayContainerInside: "document" }); }); 

此外,您是否检查控制台窗口:您可以看到某些文件未加载。 纠正它们,一切都会好起来的。

在此处输入图像描述

您编写的脚本只是在加载任何元素之前触发。 这样jQuery就找不到#currency-select因为它还不存在。 要解决这个问题,您有两种方法:

1)触发onLoad事件后执行此脚本。 你可以像这样使用jQuery

 $(function() { $("#currency-select").simpleselect({ fadingDuration: 500, containerMargin: 100, displayContainerInside: "document" }); }); 

2)您可以在结束标记之前移动脚本标记。这样,脚本将在页面元素之后处理。 这个将是所有脚本的建议选项。