我在这个设置方面遇到了一些问题我有一个.ascx
文件列表,它们在计算控制器本身方面都做了不同的任务。因此,在我的.aspx
页面上,我点击Ajax.ActionLink()
,这将根据我点击的项目呈现该特定.ascx
文件。在.ascx
内,有1-3个事件将触发其中2个onclick
个事件,1个为onload
。 onclick
事件更容易使用,因为我可以直接在控件事件中对其进行硬编码,例如onclick="$("#toggleMe3").slideToggle("slow");"
,而onload
必须在.ascx
时运行已加载我在$(document).ready(function(){});
调用中对此进行了测试,这在.aspx
页面中正常工作,但是当我尝试将其添加到.aspx
页面时,它无法加载并且是理想的这有效,但我不知道为什么不。实际上,如果我直接插入到.ascx
页面中,只有在硬编码到控件的事件中时,脚本标签中的任何内容都不起作用,至少其中一些是这样; onload
和onprerender
不会触发。
答案 0 :(得分:1)
我在通过XHR加载的部分中使用$(document).ready成功了。您通过XHR加载的视图是否会抛出JavaScript异常?或者它们是否包含格式错误的HTML?
我通常在我的部分底部有我的$(document).ready方法,我通过Ajax加载,就像......
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
答案 1 :(得分:1)
我很难理解你的问题......但现在就这样了。
如果您使用AJAX调用加载日期,$(document).ready()事件将不会触发 - 因为页面已经加载。您现在只是加载更多数据。
如果您已经知道控件的内容,请预先加载JavaScript,但不要只使用click事件处理程序进行绑定,而是使用实时处理程序。
所以
$("#myControl").click(....);
变成
$("#myControl").live("click", ....);
很抱歉,如果这不是你想要的。
答案 2 :(得分:1)
在$(document).ready中指定的部分回发脚本未执行后,我遇到了同样的问题。我在这里找到了解决方案MSDN - PageRequestManager Class
看起来像添加如下脚本修复了问题
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>