2012-09-10 93 views
0

我有一个页面包含Ajax UpdatePanel,并且它内部有一些控件,还有一些其他的控件,当我点击一个提交按钮时,UpdatePanel将被更新,并且JQuery事件将会重新 - 通过使用“Sys.WebForms.PageRequestManager.getInstance();”如以下的代码:多次吸引JQuery事件

function DocReady() { 
    $('#txtNewPassword').click(function() { 
     alert('clicked'); 
    }); 
} 

$(document).ready(function() { 
    DocReady(); 
}); 

$(document).ready(function() { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_endRequest(function() { 
     DocReady(); 
    }); 
}); 

问题是,任何部分回发后在UpdatePanel JQuery的事件外的控制重新钩状X次,其中X =部分回发的呼叫数。

+0

为什么$(document).ready重复? –

回答

0

在设置新事件之前,您可以删除所有点击事件。

function DocReady() { 
    $('#txtNewPassword').unbind('click'); 
    $('#txtNewPassword').click(function() { 
     alert('clicked'); 
    }); 
} 

这不是最干净的代码,但好像你每次只需添加一个新的单击事件的文本框所以这样会删除任何以前的事件,然后添加新的。