3

我已经查看了有关此问题的帖子,但似乎没有一个解决方案适合我。

我有一个带有 jquery 脚本的 js 文件,该文件加载在页面的 head 部分

我还有一个更新面板,它包含一个放置我的触发按钮的子用户控件。正确单击子按钮时更新面板会更新。

一切正常,只是 jquery 不再工作。

我发现 $(document).ready 不适用于部分回发的信息,所以我的更新面板就是这种情况。

我还发现使用 ScriptReference 添加路径可以工作的信息,因此我将其添加到持有 UpdatePanel 的用户控件的 Page_Load 中:

    ScriptReference sr = new ScriptReference("~/js/jquerycripts.js");
    ScriptManager.Scripts.Add(sr);

但它也不起作用。

不知道还有什么可以尝试的。

任何意见将是有益的。

谢谢

4

2 回答 2

3

您可以使用此代码代替 $(document).ready(YourFunctionName);

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(YourFunctionName)
于 2012-12-05T20:17:57.703 回答
0

如果我理解正确,更新面板中的子按钮会触发 jQuery 代码。您正在将 onclick 行为附加到准备好的文档上。当您刷新内容时,初始子按钮消失了。它可能会被新的替换,但新的没有 onclick 行为,正如预期的那样。

解决此问题的最简单方法是事件委托:将 onclick 事件附加到不会刷新的更新面板的父级。有关详细信息,请参阅此页面:http: //api.jquery.com/on/。在您的情况下, on() 将应用于父级,而选择器将是您的子级按钮。

另一种方法是在每次更新面板加载后重新运行 jQuery 代码。

于 2012-11-29T18:58:46.097 回答