0

我有一个页面包含 Ajax UpdatePanel,里面有一些控件,还有一些其他控件,当我单击提交按钮时,UpdatePanel 将被更新,并且 JQuery 事件将通过使用“Sys.WebForms”重新挂钩.PageRequestManager.getInstance();" 如下代码:

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 = 部分回发调用的次数。

4

1 回答 1

0

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

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

这不是最干净的代码,但似乎您每次只是向文本框添加一个新的单击事件,因此这种方式会删除任何以前的事件,然后添加新的事件。

于 2012-09-10T14:14:34.683 回答