【问题标题】:ASP.Net, jQuery - $(document).ready(function () not firingASP.Net,jQuery - $(document).ready(function () 未触发
【发布时间】:2011-06-09 21:24:16
【问题描述】:

我有一个包含多个步骤的向导,我为每个步骤添加了一个用户控件。 对于其中一个步骤,我想在页面加载时运行 jQuery 脚本,因此在用户控件 .ascx 文件中添加了以下内容 -

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PropertyEntryWizard10HipEpcQuestions.ascx.cs"          Inherits="PropertyInstructionEntryWizard.PropertyEntryWizard09HipEpcQuestions" %>
<%@ Register Src="~/Controls/Properties/HipManager.ascx" TagName="hip_manager" TagPrefix="rt" %>

 <script type="text/javascript">
          $(document).ready(function () {
          alert('HipManager ready');            
        });
 </script>

<h2>EPC</h2>   

<rt:hip_manager ID="ctlHipMan" runat="server" ValidationGroup="Wizard" />

但它不会在页面加载时触发,
相反,当我从浏览器按钮手动重新加载时,它会运行并收到警报。

注意:我还发现,如果我将脚本从这个用户控件移动到主 .aspx 页面,它可以正常工作。我的用户控件使用了很多 PeterBlum 控件,所以我不确定是否有任何与它们关联的脚本导致了问题。

任何想法,我错过了什么?

谢谢!

【问题讨论】:

  • ChromeSafari 中打开您的页面,启动 Inspector(右键单击某处并选择 Inspect this element ) 并查看您是否在“控制台”选项卡中存在阻止该代码执行的 javascript 错误。
  • 感谢您的回复。我签入了 Firebug ...没有错误,并且脚本也已加载。也在 Safari 中尝试过,但同样的问题......我想知道当我手动重新加载页面时它们是如何被解雇的。
  • 我认为我们需要查看更多您的页面来帮助您...除了引用的 jQuery 之外,您还有其他内容吗?例如,该脚本块和 jQuery 包含在页面流中的位置?
  • 为什么不试试把代码放在 标签里?
  • 我可以有两个头部标签吗?一个已经存在于母版页中,我想在用户控件中添加脚本。

标签: jquery asp.net


【解决方案1】:

您是否尝试过使用 pageLoad() 函数而不是 $(document).ready()?

您使用哪一个实际上取决于您从长远来看要使用代码做什么,但请看这里,因为这是对您应该在不同情况下使用哪一个的很好的解释:

http://encosia.com/document-ready-and-pageload-are-not-the-same/

【讨论】:

  • +1 Ritchie,那篇文章(以及整个网站)是一个很好的参考。
  • 感谢您的回复,但使用 pageLoad() 并没有产生任何差异。
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多