我们可以在asp.net页面中使用$(document).ready()吗?

时间:2011-05-23 02:51:54

标签: javascript asp.net jquery document-ready

enter image description here

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


编辑23/05/2011 10:54

我有一个线索。 我正在使用的页面继承自母版页

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

<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,并且这是错误的。

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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