【问题标题】:Can we use $(document).ready() in asp.net page?我们可以在 asp.net 页面中使用 $(document).ready() 吗?
【发布时间】:2011-05-23 02:51:53
【问题描述】:

我在尝试使用上图中的 $(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代码在masterpage上,在脚本管理器中,而脚本管理器在body标签里面。

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

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

【问题讨论】:

  • 是的,你可以,这可能是 Visual Studio 的问题。
  • 我认为该错误确实意味着您实际上没有包含 jquery 库(在上面的脚本中包含)。
  • 其实我可以使用其他javascript函数函数作为标识符但是我不能使用$(document).ready
  • 这没有任何意义。我认为您需要发布jsfiddle.net,以帮助展示哪些有效,哪些无效。
  • Visual Studio 可能是唯一的问题,它也无法理解 HTML5 标签和较新的 CSS3 属性并发出不必要的警告。但是我想知道为什么会发生这种情况,因为当您在 Visual Web Developer (2010) 中创建一个新的 Web 应用程序时,它会自动创建“脚本”文件夹并在其中添加 JQuery 库并将其包含在您创建的每个网页中,所以它应该理解你想做什么。

标签: javascript asp.net jquery document-ready


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 2010-09-19
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2021-06-28
      • 2019-12-27
      相关资源
      最近更新 更多