Когда я удаляю attr через jQuery, я не могу снова добавить attr - PullRequest
2 голосов
/ 05 июня 2010

Это мой код:

$("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");
    }
});

Когда я изменяю вход (это группа переключателей из 3 переключателей) на 2, он добавляет клик на .addPaymentOption. Затем я изменю ввод на 3, и щелчок исчезнет. Это хорошо.

Теперь сложная часть, когда я нажимаю на кнопку со значением 2, онклик не возвращается.

Пожалуйста, помогите мне, где ошибка?

1 Ответ

8 голосов
/ 05 июня 2010

Вы не хотите добавлять атрибут onclick, вы хотите добавить обработчик click (и удалить его, используя unbind ).

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

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