更新updatepanel时,初始jquery无法正常工作

时间:2012-11-29 18:15:35

标签: javascript jquery updatepanel scriptmanager

我已经查看了有关此问题的帖子,但似乎没有任何解决方案适用于我。

我有一个带有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);

但它也不起作用。

不确定还有什么可以尝试。

任何建议都会有所帮助。

谢谢

2 个答案:

答案 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代码。