我已经查看了有关此问题的帖子,但似乎没有任何解决方案适用于我。
我有一个带有jquery脚本的js文件,它载在页面的head部分
我还有一个updatepanel,它包含一个子用户控件,其中放置了我的触发按钮。 正确单击子按钮时,将更新updatepanel。
除了jquery不再起作用外,一切正常。
我发现$(document).ready不能用于部分回发,因此我的updatepanel就属于这种情况。
我还发现使用ScriptReference添加路径的信息可以正常工作,所以我将其添加到了持有UpdatePanel的usercontrol的Page_Load中:
ScriptReference sr = new ScriptReference("~/js/jquerycripts.js");
ScriptManager.Scripts.Add(sr);
但它也不起作用。
不确定还有什么可以尝试。
任何建议都会有所帮助。
谢谢
答案 0 :(得分:3)
您可以使用此代码代替$(document).ready(YourFunctionName);
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(YourFunctionName)
答案 1 :(得分:0)
如果我理解正确,更新面板内的子按钮会触发jQuery代码。您正在准备文档上附加onclick行为。刷新内容时,初始子按钮消失。它可能被替换为新的,但新的没有onclick行为,正如预期的那样。
解决此问题的最简单方法是事件委派:将onclick事件附加到不会刷新的updatepanel的父级。有关详细信息,请参阅此页面:http://api.jquery.com/on/。在您的情况下,on()将应用于父级,而选择器将是您的子级按钮。
另一种方法是在每次更新面板加载后重新运行jQuery代码。