代码之家  ›  专栏  ›  技术社区  ›  Matthew Jones

为什么在包含jquery脚本文件的地方会有不同?

  •  1
  • Matthew Jones  · 技术社区  · 14 年前

    在我的母版页上(对于我站点中的所有页面),我有一个工具箱脚本管理器。

    在我的内容页上,有一系列的超链接和div用于可折叠功能。

    显示/隐藏面板的代码的工作方式如下:

    $(document).ready(function() {
    // Hookup event handlers and execute HTML DOM-related code
    $('#nameHyperLink').click(function() {
    
            var div = $('#nameDiv');
            var link = $('#nameHyperLink');
            if (div.css('display') == 'none') {
                link.text('Hide Data');
                div.show('100');
            }
            else {
                link.text('Show Data');
                div.hide('100');
            }
    
        });
    });
    

    如果我在toolkitscriptmanager中包含对jquery 1.4.2文件的脚本引用,则会在页面上错误地执行javascript代码(只更改超链接的文本,实际上不显示DIV)。但是,如果我不在toolkitscriptmanager中包含jquery文件,而是将其包含在内容页面中,则它的工作方式与准确地说。

    我是一个javascript/jquery新手,这完全没有意义。这是怎么回事?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Tj Kellie    14 年前

    脚本include的定位对于jquery引用很重要。如果您查看生成的源代码,我敢打赌标记在脚本函数()的下面。您应该确保jquery引用最早出现在页面源中。

    尝试将jquery库引用移到母版页的头部,这应该可以工作。否则,发布一些消息来源!

        2
  •  0
  •   Bryan    14 年前

    就像TJ说的…可能在母版页的标题部分。此外,最好链接到谷歌版本的这个库,因为很可能你的用户已经将它缓存了。例如,查看这个页面的源代码。

    这里的两个最可能的原因是$Not being defined yet(见TJ的答案)和$Getting defined by another library,例如prototype。

    我强烈建议您使用Firebug的JavaScript调试器,或者至少看看Firefox内置的错误控制台(工具->错误控制台)。这将给你一个比“它不起作用”更好的线索。

    推荐文章