Jquery JSFIDLE上的代码相同,但不会在我的服务器上运行?
我很困惑。我只是尝试测试一个jquery simpleselect,并让它在jquery上正常工作,但是当我将它上传到我的服务器时。。。完全不行!我发誓代码是一样的,但也许新鲜的眼睛能帮上忙。我错过了什么 这是我上传的代码:Jquery JSFIDLE上的代码相同,但不会在我的服务器上运行?,jquery,css,jsfiddle,Jquery,Css,Jsfiddle,我很困惑。我只是尝试测试一个jquery simpleselect,并让它在jquery上正常工作,但是当我将它上传到我的服务器时。。。完全不行!我发誓代码是一样的,但也许新鲜的眼睛能帮上忙。我错过了什么 这是我上传的代码: <html> <head> <link rel="stylesheet" type="text/css" href="https://smartieparts.com/bootstrap/includes/templates/boo
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://smartieparts.com/bootstrap/includes/templates/bootstrap/css/stylesheet_jquery.simpleselect.min.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="https://smartieparts.com/bootstrap/includes/templates/bootstrap/jscript/jscript_jquery.simpleselect.min.js"></script>
<script type="text/javascript">
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
</script>
</head>
<body id="indexHomeBody">
<select name="currency" id="currency-select">
<option value="USD">USD</option>
<option value="EUR">EUR</option>
<option value="GBP">GBP</option>
<option value="CAD">CAD</option>
<option value="AUD">AUD</option>
<option value="CHF">CHF</option>
<option value="CZK">CZK</option>
<option value="DKK">DKK</option>
<option value="HKD">HKD</option>
<option value="JPY">JPY</option>
<option value="NZD">NZD</option>
<option value="NOK">NOK</option>
<option value="PLN">PLN</option>
<option value="SGD" selected="selected">SGD</option>
<option value="SEK">SEK</option>
<option value="ILS">ILS</option>
<option value="MXN">MXN</option>
<option value="TWD">TWD</option>
<option value="PHP">PHP</option>
<option value="THB">THB</option>
</select>
</body>
</html>
这里是
注意,JSFIDLE有外部css和js资源,我完全是从上面的代码复制/粘贴这些资源的
在JSfiddle页面上,下拉列表被格式化并具有淡入淡出效果。在我的服务器上,它有点格式化,没有褪色
我已将文件上载到我的服务器,以便您检查
在文档准备就绪之前,无法安全地操作页面。jQuery为您检测这种准备状态。$document.ready中包含的代码只有在页面文档对象模型DOM准备好让JavaScript代码执行后才会运行。$window.loadfunction{…}中包含的代码将在整个页面图像或iFrame(而不仅仅是DOM)就绪后运行
将代码包装到处理程序中
指定DOM完全加载时要执行的函数
准备好文件
$( document ).ready(function() {
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
});
在文档准备就绪之前,无法安全地操作页面。
jQuery为您检测这种准备状态。代码包括在内
$document.ready将只运行一次页面文档对象
模型DOM已准备好让JavaScript代码执行。代码包括
在$window内。loadfunction{…}将在整个
页面图像或iFrame(不仅仅是DOM)已准备就绪
另外,您是否检查了控制台窗口:您可以看到一些文件没有加载。纠正它们,一切都会好起来的。
头标记中的脚本在执行时对DOM一无所知。加载DOM后,应在关闭标记之前移动,o在处理程序中包装代码:
在关闭标记之前移动脚本更好。您编写的脚本只是在加载任何元素之前触发。这样jQuery就不会找到货币选择,因为它还不存在。要解决此问题,有两种方法: 1在触发onLoad事件后执行此脚本。您可以像这样使用jQuery来实现
$(function() {
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
});
2您可以将脚本标记移动到结束标记之前,这样可以在页面元素之后处理脚本。这将是您所有脚本的建议选项。将您的代码包装在文档准备好的handler中。如果您想向hammerlol寻求澄清,请使用注释。我特别没有这样做,因为它直接说明了编辑此问题。。。不管怎样,我想我真的不在乎。接得好,对此我很抱歉。在我的匆忙中,我在绝对路径上有一个拼写错误,我使用了相对,但在这里发布时使用了绝对。我已经修好了,你可以看到它本身什么都没有改变。此评论仅针对未加载的文件,而不是文档包装。谢谢!我觉得自己很傻,因为我读到了关于其他人问题的相同答案,但没有表明我也有同样的问题。那么为什么它在JSFIDLE中有效呢?@bcsteeve,FIDLE在我这边不起作用,但是有一个左手边的选项,就像你在LOADAH上使用的ONDOMREAY一样,好的。现在我明白这是为什么了。谢谢,好吗?有时你不会吗?情况会非常具体。甚至库本身也值得移到底部,因为它们不会阻止加载DOM。我可能会把我的分析脚本留在脑子里。谢谢你的提示。
$( document ).ready(function() {
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
});
<script>
$(function() {
// Handler for .ready() called.
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
});
</script>
$(function() {
$("#currency-select").simpleselect({
fadingDuration: 500,
containerMargin: 100,
displayContainerInside: "document"
});
});