在UpdatePanel中更新后重新加载jquery事件

时间:2010-07-10 08:32:16

标签: c# asp.net jquery-ui jquery

我在UpdatePanel中更新后遇到了问题。问题是在UpdatePanel中更新后jquery事件不工作/触发。第一次,jquery事件工作,但不是在UpdatePanel中更新之后。如果我删除UpdatePanel,问题就解决了。但我必须使用UpdatePanel。

你能给我一个解决方案吗?

2 个答案:

答案 0 :(得分:2)

其中一个可能的原因是UpdatePanel替换了附加了jquery事件的DOM中的元素,这当然会使这些事件无效。一种可能的解决方案是使用.live()函数来注册事件,但它只适用于某些事件。

如果您无法使用live功能,则UpdatePanel finished替换DOM元素后,您需要重新附加这些事件:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
    // TODO: reattach your jquery event handlers
});

答案 1 :(得分:0)

你需要绑定事件或你想要执行的函数,即使在页面回发之后,因为元素不记得回发后附加到它们的事件。

所以你需要在endRequst处理程序中调用它们

$(function{

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(AfterPostBack);

    AfterPostBack();

});

function AfterPostback(){

   // Your code goes here...
}