ボックス追加ボタン (#purchase) を使用して、ショッピング カートにボックス/アイテムを追加します。(これには 25 クレジットが必要です)
内側のオレンジ色の div をクリックすると、クレジットも 15 クレジット減り、一番上の div がフェードアウトします (これにより、どの要素がすでに 15 クレジットを消費しているかがわかります。フェードアウトは 1 回だけで、これは良いことですが、フェードアウトしても、ユーザーは引き続き div をクリックできるため、クレジットが必要以上に減少します。
.one() でいくつか試してみましたが、追加された要素の 1 つでしか機能しません。どうすればこれを達成できるか教えてもらえますか? なぜ。
コード HTML
<button id="purchase">Add a box </button>
<input id="money">
<div class="container"></div>
JS
var counter = 0;
$("#money").val(250);
$('#purchase').click(function() {
if ($("#money").val() < 25) {return;}
var box = $('<div class="box"' + (counter) + '><div class="yellow"' + (counter) + '><div class="buy"' + (counter) + '></div></div></div>').appendTo('.container');
$("#money").val(Number($("#money").val()) - 25).triggerHandler('change');
});
$('#money').change(function() {
$('#purchase').prop("disabled", $(this).val() < 25);
});
$('.container').on('click', '.buy', function() {
if ($("#money").val() < 15) {return;}
$(this).fadeOut(4000, callbackFunction);
$("#money").val(Number($("#money").val()) - 15).triggerHandler('change');
});
function callbackFunction() {
alert('done');
}