5

我的这个设置有点问题,我有一个.ascx文件列表,它们在控制器本身的计算方面都做了不同的任务。因此,在我的.aspx页面上,我单击一个,这将根据我单击的项目Ajax.ActionLink()呈现该特定文件。.ascx其中.ascx有 1-3 个事件将触发其中 2 个是onclickevents,1 个是onload. 这些onclick事件更容易使用,因为我可以像这样直接在控件事件中对其进行硬编码,onclick="$("#toggleMe3").slideToggle("slow");"并且onload必须在.ascx加载时运行我正在$(document).ready(function(){});调用中测试它,这在.aspx页面中可以正常工作,但只要我尝试将其添加到.aspx页面没有加载,它是理想的,但我不知道为什么不。事实上,如果我直接插入到.ascx页面中,脚本标签中的任何内容都不起作用,它们只有在硬编码到控件的事件中时才起作用,至少其中一些;并且不要开火onloadonprerender

4

3 回答 3

1

我在通过 XHR 加载的部分中使用 $(document).ready 取得了成功。您通过 XHR 加载的视图是否会引发 JavaScript 异常?或者它们是否包含格式错误的 HTML?

我通常在我通过 Ajax 加载的部分底部有我的 $(document).ready 方法,比如......

<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
于 2009-05-12T18:53:19.323 回答
1

我很难理解你的问题......但它就在这里。

如果您使用 AJAX 调用加载日期,$(document).ready() 事件将不会触发——因为页面已经加载。您现在只是在加载更多数据。

如果您已经知道控件会出现什么,请预加载 JavaScript,但不要仅使用 click 事件处理程序进行绑定,而是使用实时处理程序。

所以

$("#myControl").click(....);

变成

 $("#myControl").live("click", ....);

抱歉,如果这不是您要找的。

于 2009-05-12T19:13:45.437 回答
1

在 $(document).ready 中指定的部分回发脚本未执行后,我遇到了同样的问题。我在这里找到了解决方案MSDN - PageRequestManager Class

看起来像添加如下脚本可以解决问题

<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>
于 2011-03-29T16:54:36.740 回答