javascript错误需要双重包含jquery

时间:2012-10-01 08:09:43

标签: javascript jquery

所以我正在创建一个网站并在页面中移动了一些脚本,突然间,一些笔记停止在我的客户端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 ....

可能的原因导致了什么?特别是因为它在所有浏览器上运行我的系统而不是我的客户。

** * 更新 * < / EM> ** * **** 我认为jquery停止在中间的某个地方工作......即我最后有这个脚本

$('#start').val('0000.00.00 00:00');
$('#end').val('0000.00.00 00:00');

但是带有“start”和“end”id的字段没有显示给定的数据。因此需要额外包含jquery。

1 个答案:

答案 0 :(得分:0)

第一个内联脚本是否使用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的下方,以防它不是以$未定义或重新定义的方式编写的,但通常对于正确编写的插件不是必需的。 )