Jquery 更新attr(“onclick”)问题

Jquery 更新attr(“onclick”)问题,jquery,attr,Jquery,Attr,我有下一个代码来处理ASP.Net控件 当结果变量(res)等于“NO”时,我试图向按钮上的“onclick”事件添加一些javascript代码。问题在于,第一次将值赋给“onclick”时,它工作正常,但当执行removeAttr时,函数再次被调用,res再次等于“NO”,它不会在“onclick”事件上添加代码。这有什么不对吗?谢谢你的帮助 图例: -HLevel(文本框) -PSave(链接按钮) 您需要更改click事件处理程序,如下所示: $('#HLevel').blur(func

我有下一个代码来处理ASP.Net控件

当结果变量(res)等于“NO”时,我试图向按钮上的“onclick”事件添加一些javascript代码。问题在于,第一次将值赋给“onclick”时,它工作正常,但当执行removeAttr时,函数再次被调用,res再次等于“NO”,它不会在“onclick”事件上添加代码。这有什么不对吗?谢谢你的帮助

图例: -HLevel(文本框) -PSave(链接按钮)


您需要更改click事件处理程序,如下所示:

$('#HLevel').blur(function () {
     // SOME CODE HERE BEFORE THE ISSUE CODE
     var res = $(msg).find("string").text();
     if (res == "NO") {
        $('#PSave').click(function(){
            return confirm('some text');
        });
     } else {
        $('#PSave').unbind('click');
     }

 });

为什么不全部使用jquery而不是javascript onclick处理程序呢。那些都是乱七八糟的

$('#PSave').click(function(){
    confirm('some text');

});
使用unbind代替removeAttr

$('#PSave').unbind();
使用以下步骤和方法:


如果您使用jQuery,请尽可能多地使用它,不要混用样式。

它工作得非常好!!!非常感谢Felix的建议!!!从现在起,我将使用更多jquery来避免此类问题。
$('#PSave').unbind();
if (res == "NO") {
    $('#PSave').click(function() {return confirm('some text');});
} else {
    $('#PSave').unbind("click");
}