2010-07-10 76 views
0

UpdatePanel中的更新后出现问题。问题是在UpdatePanel中更新之后,jquery事件没有工作/触发。在第一次,jQuery的事件工作,但没有UpdatePanel更新后。如果我删除了UpdatePanel,问题就解决了。但我必须使用UpdatePanel。在UpdatePanel中更新后重新加载jquery事件问题

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

回答

2

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

如果您无法使用live功能,您将需要重新连接这些事件一旦UpdatePanelfinished更换DOM元素:

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

使用.live(),我们可以在正常的jquery下使用吗?或者我们是否应该下载任何插件/ JavaScript文件? – 2010-07-10 09:58:59

+0

'.live()'函数是jquery的一部分(请参阅我的文章中的链接),以便您可以直接使用它。 – 2010-07-10 10:11:34

+0

好的......让我试试....应该在每次UpdatePanle执行时或页面加载时使用.live()吗? – 2010-07-10 10:51:29

0

您需要绑定的事件或要执行的功能即使是页面回发作为不记得重视他们回发后发生的事件的元素..

因此,你需要给他们打电话endRequst处理后

$(function{ 

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

    AfterPostBack(); 

}); 

function AfterPostback(){ 

    // Your code goes here... 
} 
相关问题