在页面加载方法之后调用 Document.ready 方法 - Jquery 3.3.2

Posted

技术标签:

【中文标题】在页面加载方法之后调用 Document.ready 方法 - Jquery 3.3.2【英文标题】:Document.ready method is called after pageload method - Jquery 3.3.2 【发布时间】:2018-11-15 17:42:33 【问题描述】:

我正面临一个奇怪的问题。我正在将我的项目升级到最新的 jQuery 版本 3.3.2。我创建了一个示例页面,其中仅包含更新面板和一个 javascript 链接。

现在的问题是,当我刷新页面(运行应用程序)时,不是调用 document.ready 方法,而是先调用 pageLoad 方法,然后再调用 document.ready 方法。

我曾尝试使用旧版本的 jQuery 2.2.4,并且在更新面板上运行良好,但是当我升级到最新版本 3.x.x 时,它会产生问题。

下面是示例代码

default.aspx 页面

<head runat="server">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.0.0.js"></script>
<%--<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.js"></script>--%>
<script src="Scripts/JavaScript.js"></script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> Page body
</div>
<asp:ScriptManager runat="server" ID="sm" ScriptMode="Debug" EnableCdn="false"
EnablePartialRendering="true" LoadScriptsBeforeUI="true">
<CompositeScript>
<Scripts>
<asp:ScriptReference Name="MicrosoftAjax.js" />
<asp:ScriptReference Name="MicrosoftAjaxWebForms.js" />
</Scripts>
</CompositeScript>
</asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="upSnapshot" UpdateMode="Conditional">
<ContentTemplate>
Update panel body
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>

Javascript:

$j = jQuery.noConflict();
$j(document).ready(function () 
alert('document.ready');
);
function pageLoad(sender, args) 
alert('Pageload');

【问题讨论】:

【参考方案1】:

ready 事件在 html 文档加载后发生,而 onload 事件在稍后发生,此时所有内容(例如图像)也已加载。 p>

onload 事件是 DOM 中的标准事件,而 ready 事件是 jQuery 特有的。 ready 事件的目的是在文档加载后尽早发生。

您在哪里调用了 pageload() 方法? 可以分享一下 HTML 吗?

【讨论】:

@DENENDRA DHINDA,感谢您的时间和分享。 HTML 在我之前的评论中已经存在。 scriptresource.ax 文件正在调用 javascript 的 pageload 方法,因为我在页面上使用了更新面板。我没有在我的 HTML 的任何地方明确提到该方法

以上是关于在页面加载方法之后调用 Document.ready 方法 - Jquery 3.3.2的主要内容,如果未能解决你的问题,请参考以下文章

在页面加载方法之后调用 Document.ready 方法 - Jquery 3.3.2

jQuery domready

页面调用iframe,网站配置到服务器上之后,iframe部分的内容无法加载

Vue - 页面元素加载完成后调用的方法

onload和ready的区别

JQuery 学习笔记--02