覆盖从val()检索的变量

时间:2013-04-26 22:06:09

标签: jquery

在下面的代码中,每当有人启动click功能时,我如何重写“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);

    });   
 });

1 个答案:

答案 0 :(得分: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);
});

Check fiddle

您定义点击事件$('#click').click(function ()的方式将多次绑定事件,每次点击一次。

因此,请将活动移至点击事件之外。

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

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