0

下面的脚本在我的一台计算机上运行良好,但在另一台计算机上执行时我得到uncaught referenceerror $ is not defined. 这是另一个类似页面上的相同错误。它还说无法加载 ajax.google... 源的资源。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

<script type="text/javascript">
    //add dynamic fields to add more addresses
    $(document).ready(function() {
        $('#btnAdd').click(function() {
            var $address = $('#address');
            var num = $('.clonedAddress').length;
            var newNum = new Number(num + 1);
            var newElem = $address.clone().attr('id', 'address' + 
newNum).addClass('clonedAddress');

            //set all div id's and the input id's
            newElem.children('div').each (function (i) {
                this.id = 'input' + (newNum*11 + i);
            });
            newElem.find('input').each (function () {
                this.id = this.id + newNum;
                this.name = this.name + newNum;
            });

            if (num > 0) {
                $('.clonedAddress:last').after(newElem);
            } else {
                $address.after(newElem);
            }


            $('#btnDel').removeAttr('disabled');

            if (newNum == 2) $('#btnAdd').attr('disabled', 'disabled');//number of 
field sets that can be added
        });
        $('#btnDel').click(function() {
            $('.clonedAddress:last').remove();
            $('#btnAdd').removeAttr('disabled');
            if ($('.clonedAddress').length == 0) {
                $('#btnDel').attr('disabled', 'disabled');
            }
        });
        $('#btnDel').attr('disabled', 'disabled');
    });
</script>
4

2 回答 2

1

第二个错误将导致第一个错误。无法加载jQuery将导致$未定义。而且由于您是从 CDN 加载它,因此可能会出现以下两种情况之一:a) 您的网络已关闭,或 b) google 的 CDN 已关闭或不再通过该路径托管。既然您说它可以在另一台计算机上运行,​​我的倾向是 a) 您的网络已关闭。

正如 Rocket 在评论中解释的那样,可能不是您的网络完全关闭,而只是您无法访问 google CDN。防火墙或其他东西可能会导致此问题。


如果您的计算机可能网络中断,建议下载压缩的 jQuery 源代码并本地化该文件。如果你打算这样做,我强烈建议尽可能使用高于 1.3 的版本。

于 2012-05-07T16:17:03.707 回答
0

@Kirean 的回答是对的,但我想分享一下 HTML5-Boilerplate 使用什么来涵盖这种情况(评论太多了)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/path/to/local/jquery-1.6.2.min.js"><\/script>')</script>

它尝试从 Google 的 CDN 加载 jQuery,如果不成功(window.jQuery未定义),它会加载您的本地版本作为后备。

于 2012-05-07T16:41:11.183 回答