因此,我正在制作一个网站,并在页面中移动了一些脚本,突然间,一些脚本停止在我的客户端 PC 上运行。我不得不进行一些尝试,终于成功了,但我无法弄清楚是什么导致了问题。
这是不工作时的结构
<html>
<head>
<script type='text/javascript' src='somepath/script/jquery.js'></script>
<script type='text/javascript'>
//some custom jquery script
</script>
</head>
<body>
....lots of stuff
</body>
</html>
<script type='text/javascript' src="sompath/some_jquery_plugin.js'></script>
<script type='text/javascript'>
//some custom jquery script
</script>
这是它工作时的结构
<html>
<head>
<script type='text/javascript' src='somepath/script/jquery.js'></script>
<script type='text/javascript'>
//some custom jquery script
</script>
</head>
<body>
....lots of stuff
</body>
</html>
<script type='text/javascript' src='somepath/script/jquery.js'></script>
<script type='text/javascript' src="sompath/some_jquery_plugin.js'></script>
<script type='text/javascript'>
//some custom jquery script
</script>
即注意最后包含的附加 jquery.js....
什么可能的原因导致了这种情况?特别是因为它可以在我的系统上的所有浏览器上运行,但不能在我的客户端上运行。
***更新******** 我认为 jquery 在中间的某个地方停止工作...即我在最后有这个脚本
$('#start').val('0000.00.00 00:00');
$('#end').val('0000.00.00 00:00');
但是带有“start”和“end”id 的字段没有显示给定的数据。因此需要额外包含 jquery。
最佳答案
第一个内联脚本是否使用 jQuery.noConflict
(或$.noConflict
)?您的示例中的“....lots of stuff
”是否加载了其他一些库(例如 Prototype),可能会重新定义 $
对象?这可能就是问题所在。
尝试将所有代码放入以下内容的第二个脚本标记中:
(function ($) {
// YOUR CODE HERE
}(jQuery));
(并删除第二个 jQuery 包含)并看看是否有帮助。
如果您的代码已包含在:
$(document).ready(function () {
// your code
});
或者:
$(function () {
// your code
});
然后尝试将其更改为:
jQuery(document).ready(function ($) {
// your code
});
或者:
jQuery(function ($) {
// your code
});
(请注意,它是 function ($)
而不是 function ()
)
(您可能还需要将插件放在第一个 jQuery 的下方,以防它不是以与 $
未定义或重新定义一起使用的方式编写的,但通常这对于插件来说不是必需的写得好。)
关于javascript错误,需要双重包含jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12669558/