1

在我的母版页(对于我网站中的所有页面)我有一个 ToolkitScriptManager。

在我的内容页面上,有一系列用于可折叠功能的超链接和 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 文件的 ScriptReference,则 javascript 代码在页面上执行不正确(仅更改了超链接的文本,实际上并未显示 div。)但是,如果我不在 ToolkitScriptManager 中包含 jQuery 文件,而是将其包含在内容页面中,它可以正常工作。

我是 Javascript/jQuery 新手,这完全没有意义。这里发生了什么?

4

2 回答 2

2

脚本 include 的定位对于 jQuery ref 很重要。如果您查看生成的源代码,我敢打赌该标记位于脚本函数()下方。您应该确保 jQuery 引用在您可以在页面源代码中获得时尽早提供。

尝试将 jQuery 库引用移动到母版页的头部,这应该可以。否则张贴一些来源!

于 2010-05-11T20:07:16.330 回答
0

就像 Tj 说的那样……应该在您的母版页的头部。此外,链接到该库的 Google 版本也很好,因为您的用户很可能已经缓存了它。例如,查看此页面的源代码。

这里最可能的两个原因是 $ 尚未定义(请参阅 Tj 的答案)和 $ 被另一个库定义,例如原型。

我强烈建议您考虑使用 Firebug 的 javascript 调试器,或者至少看看 Firefox 的内置错误控制台(工具 -> 错误控制台)。除了“它不起作用”之外,这将为您提供更好的线索。

于 2010-05-11T21:05:14.717 回答