【问题标题】:jquery .load() function recrusive [closed]jquery .load() 函数递归[关闭]
【发布时间】:2022-01-19 11:38:45
【问题描述】:

我有这段代码,它将 .aspx 元素加载到#maincontent div - 它可以工作,但是当我单击另一个按钮时,女巫正在加载相同的页面 #maincontent div 我看到控制台很多 deal.aspx 和 ta.aspx已加载。

如何实现一键一页加载?或者如何清除递归堆栈。

jquery 代码:

$("#tre").click(function () {
  $("#mainContent").load("subMenu1/deal.aspx");
});

$("#tra").click(function () {
  $("#mainContent").load("subMenu1/ta.aspx");
});

C#:

<div runat="server" id="mainContent"></div>

【问题讨论】:

  • 它触发不是因为它是递归的,它触发是因为您正在对按钮单击进行完整的回发(发送所有数据,接收所有数据,再次执行所有 javascript)。您可能希望将您的按钮相关代码添加到问题中。我们不知道您使用的是 MVC 还是 webforms,答案可能会有所不同(MVC 有部分视图,webform 没有)
  • 感谢您的回答。我正在使用网络表单
  • 我可以阻止 js 中的完整回发吗?我尝试了 preventDefault 方法,但没有成功。
  • 在 webforms 中有一些替代方案,例如,将按钮放在 UpdatePanel 中,以便按钮自动执行部分回发,或者使用 jquery 的 ajax 函数手动调用页面并使用回复。看看这些东西,看看它们是如何使用的,并尝试实现它们中的任何一个

标签: javascript c# jquery


【解决方案1】:

我有一个解决办法,但我犯了一个错误。

所以当我调用 .aspx 时,我没有注意到 aspx 文件有附加的脚本文件,这个页面调用的又是什么

$("#tre").click(function () {  
 $("#mainContent").load("subMenu1/deal.aspx"); 
});
 $("#tra").click(function () {  
 $("#mainContent").load("subMenu1/ta.aspx"); 
});

> 这导致了多页调用。现在我解决了这个问题。谢谢您的帮助。这非常有用。

【讨论】:

    猜你喜欢
    • 2023-02-04
    • 2023-04-05
    • 2018-08-07
    • 2012-12-06
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2022-01-15
    相关资源
    最近更新 更多