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