JQuery事件多次挂钩

时间:2012-09-10 14:04:45

标签: c#-4.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 =部分回发调用的数量。

1 个答案:

答案 0 :(得分:0)

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

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

这不是最干净的代码,但似乎您每次都只是在文本框中添加一个新的点击事件,这样就可以删除之前的所有事件,然后添加新事件。