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 ()将多次绑定事件,每次点击一次。

所以将事件移到点击事件之外。

也尝试使用.on绑定事件处理程序。

.click(function () { 更改为 .on('click', function () {

于 2013-04-26T22:08:56.943 回答