1

在此处输入图像描述

我在尝试使用 $(document).ready() 时出错,如上图所示。我应该怎么解决这个问题?


编辑 23/05/2011 10:54

我有一个线索。我正在工作的页面继承自 masterpage

在母版页中,此代码不起作用,可能是路径不同的问题

<head id="Head1" runat="server">
<title>Back Office</title>
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" />
<link href="Styles/custom-theme/jquery-ui-1.8.12.custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="scripts/jquery-1.5.1.min.js"></script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>

此代码似乎不起作用

在母版页的主体上,有一个脚本管理器和jquery,这使得jQuery可以工作,是因为我们在body中使用了scriptmanager,所以document.ready不起作用?

            <asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
                <Scripts>
                    <asp:ScriptReference Path="~/Scripts/jquery-1.5.1.min.js" />
                </Scripts>
            </asp:ScriptManager>
            <asp:ContentPlaceHolder ID="MainContent" runat="server">
            </asp:ContentPlaceHolder>

我发现了问题。

问题是 jquery 代码在母版页上,在脚本管理器中,而脚本管理器在 body 标记内。

document.ready 位于母版页上继承的页面上的标题标记上,因此在执行到正文的代码之前,jquery 尚未包含在内,这是错误的。

解决这个问题的最简单方法是,我必须将 javascript 代码移动到 body 标记的底部。我仍然找不到的正确解决方法是将javascript包含代码放在标题中。但我还没有找到可行的方法。我的母版页和继承页位于不同的路径上。我发现了很多技术,例如,但没有一个有效。

4

2 回答 2

3

取出除 jquery-1.5.1.min.js 之外的所有其他 javascript 包括。尝试仅包含一个。如果可行,请一次添加另一个包含,直到出现错误。如果它不能仅与包含的 jQuery 脚本一起使用,则很可能它没有指向正确的路径。

简短的回答是,是的,您可以在 ASP.NET 页面中使用 jQuery 和 document.ready。

于 2011-05-23T02:56:53.850 回答
1

你当然可以。然而,似乎 jQuery 对象在脚本执行时不可用。验证 jquery 库文件确实是通过脚本指令加载的。或者,这背后可能还有其他一些细微差别。

于 2011-05-23T02:55:45.257 回答