1

我的页面中有以下代码。有时 jQuery 加载正常,但有时我得到一个错误:jQuery is undefined

<script src="/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/javascripts/jquery-ui-1.7.1.custom.min.js"    
type="text/javascript"></script>

<script type="text/javascript">
alert('test')
var $j = jQuery.noConflict();
alert('test1')
//start when document is ready
$j(document).ready(function(){
alert('test2')

当 jQuery 不加载时,我只alert在页面上看到第一个。所以我认为 jQuery 永远不会被加载。我也使用 noConflict 只是因为在我收到错误之前$ is undefined。我没有使用任何其他 js 库,如原型或任何东西。所以我没有任何真正需要使用jQuery noConflict()

有人在使用 jQuery 和 IE 7 时遇到过这类问题吗?Firefox 不会发生此错误。

可以做些什么来解决这个问题吗?

更新 我决定使用托管在 Google 上的 jQuery + jQuery UI。这对我有用。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
4

2 回答 2

1

如果您没有任何其他冲突的库,那么$ is undefined几乎意味着您的 jquery 脚本库路径不正确,或者 jQuery 尚未准备好。在这种情况下,没有理由使用无冲突功能。

尝试这个:

<script src="/path to your/jquery-1.3.2.min.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function() {

        alert("jquery is ready.");

    });
</script>

如果警报触发,您知道 jQuery 被正确引用和初始化。

如果没有,请尝试以下选项:

  • 尝试使用 Firefox 和Firebug来检查脚本路径是否正确(您将能够在 firebug 窗格中实际加载脚本文件)
  • 在开发中使用非缩小版的 jQuery,以确保没有问题
于 2010-02-17T20:36:11.773 回答
0

如果这也发生在其他浏览器中,那么我的第一个赌注是您的 Jquery 库的 URL 路径不正确。(javascriptsjavascript)。尝试将完整的 URL 放入库中,看看会发生什么。

noConflict 声明是否正确?我认为应该是

var j = jQuery.noConflict();
....
j(document).ready(function(){....}
于 2010-02-17T20:16:10.773 回答