当我通过jQuery删除attr时,我无法再次添加attr

Pat*_*gen 2 javascript jquery attributes attr

这是我的代码:

$("input[name=donationmode]").change(function() {
    $(".setpaymentOptions").children().addClass("fadeout");
    $(".setpaymentOptions").children().children(".inputfield").children("input").attr("disabled", "disabled");

    $(".option-"+$(this).val()).removeClass("fadeout");
    $(".option-"+$(this).val()).children(".inputfield").children("input").removeAttr("disabled");

    if($(this).val() == 2)
    {
        $(".option-2").children(".inputfield").children("#paymentOption").find("input").removeAttr("disabled");
        $(".option-2").find(".addPaymentOption").attr("onclick", "addPaymentOption()");

    }
    else
    {
        $(".option-2").children(".inputfield").children("#paymentOption").find("input").attr("disabled", "disabled");
        $(".option-2").find(".addPaymentOption").removeAttr("onclick");
    }
});
Run Code Online (Sandbox Code Playgroud)

当我将输入(它是3个单选按钮的单选按钮组)更改为2时,它会将onclick添加到.addPaymentOption.然后我将输入更改为3并且onclick消失.非常好.

现在是棘手的部分,当我点击带有值2时onclick不会回来.

请帮帮我,bug在哪里?

tva*_*son 8

您不想添加onclick属性,要添加单击处理程序(并使用unbind删除它).

   $('.option-2').find('.addPaymentOption').click( addPaymentOption );

   $('.option-2').find('.addPaymentOption').unbind( 'click', addPaymentOption );
Run Code Online (Sandbox Code Playgroud)