C# 在UpdatePanel中更新后重新加载jquery事件问题
我在UpdatePanel中更新后遇到了一个问题。问题是在UpdatePanel中进行更新后,jquery事件不工作/触发。第一次,jquery事件工作,但在UpdatePanel中的更新之后不工作。如果我删除UpdatePanel,问题就解决了。但是我必须使用UpdatePanelC# 在UpdatePanel中更新后重新加载jquery事件问题,c#,asp.net,jquery-ui,jquery,C#,Asp.net,Jquery Ui,Jquery,我在UpdatePanel中更新后遇到了一个问题。问题是在UpdatePanel中进行更新后,jquery事件不工作/触发。第一次,jquery事件工作,但在UpdatePanel中的更新之后不工作。如果我删除UpdatePanel,问题就解决了。但是我必须使用UpdatePanel 您能给我一个解决方案吗?其中一个可能的原因是,UpdatePanel替换DOM中附加了jquery事件的元素,这些元素当然会使这些事件无效。一种可能的解决方案是使用该函数注册事件,但它仅适用于某些事件 如果无法使用
您能给我一个解决方案吗?其中一个可能的原因是,
UpdatePanel
替换DOM中附加了jquery事件的元素,这些元素当然会使这些事件无效。一种可能的解决方案是使用该函数注册事件,但它仅适用于某些事件
如果无法使用live
函数,则需要在UpdatePanel
具有替换DOM元素后重新附加这些事件:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(sender, args) {
// TODO: reattach your jquery event handlers
});
即使在页面回发之后,您也需要绑定要执行的事件或函数,因为元素不记得回发之后附加到它们的事件 因此需要在endRequst处理程序中调用它们
$(function{
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(AfterPostBack);
AfterPostBack();
});
function AfterPostback(){
// Your code goes here...
}
对于使用.live(),我们可以在普通jquery下使用吗?或者我们应该下载任何插件/javascript文件吗?
.live()
函数是jquery的一部分(请参阅我文章中的链接),因此您可以直接使用它。好的……让我试试……我们应该在每次执行UpdatePanle时使用.live(),还是在页面加载时使用它?您能给我一个为方法注册livequery插件的示例代码吗?此外,页面加载。例如,我有两个方法“draggable”和“dropable”。这是我写的:$(document).ready(function(){if(jQuery.livequery)jQuery.livequery.registerPlugin(“draggable”,“dropable”);InitializePage();});函数InitializePage(){$(“.draggable”).live(“draggable”,{helper:'clone',scroll:false});BindDropEvent();}函数BindDropEvent(){$(“.dropable”).live(“dropable”,{drop:function(ev,ui){};}