4

次のコードでは、誰かがクリック機能を開始するたびに "donateAmount" 変数をオーバーライドするにはどうすればよいでしょうか?

つまり、誰かがクリックするたびに、変数「donateAmount」内にあるものはすべて削除され、新しい val() 金額に置き換えられます。

ありがとうございました

アップデート

変数のスコープの問題が修正されたおかげで、以下のコードが機能するようになりました。

$('label input').click(function () {
    if ($('label input').is(':checked')) {
        $(this).parent().addClass('checked');
        $('.donate-now label').not($(this).parent()).removeClass('checked');
        var donateAmount = $(".checked input").val();


     }


    $('#click').click(function(){

        if ($('label #other').is(':checked')) {
            donateAmount = $("#otherAmount").val();
        }
           $('p').html(donateAmount);

    });   
 });
4

1 に答える 1

0

これを試して

 var donateAmount = $(".checked input").val();
$('label input').click(function () {
    var $this = $(this);
    if ($this.is(':checked')) {
        $this.closest('label').addClass('checked');
        $('.donate-now label').not($this.closest('label')).removeClass('checked');
        donateAmount = $this.val();
        if ($('#other').is(':checked')) {
           donateAmount = $("#otherAmount").val();
        }
    }
});

$('#otherAmount').change(function() {
    donateAmount = this.value;
});

$('#click').click(function () {
    $('p').html('$' + donateAmount);
});

フィドルをチェック

クリックイベントを定義する方法は、クリック $('#click').click(function ()ごとに1回、イベントを複数回バインドします。

そのため、イベントをクリック イベントの外に移動します。

また.on、イベント ハンドラーをバインドするために使用してみてください。

.click(function () { に変更 .on('click', function () {

于 2013-04-26T22:08:56.943 に答える