私はjQueryを使用しています。これはどのラベルのclickイベントのコードです。
$('.spin span:last-child').click(function(){
unitPrice = parseFloat($(this).closest('.product').find('.unit-price span').text().substring(3));
if ($(this).parent().find($('.custom-input')).val() == "") {
$(this).parent().find($('.custom-input')).val(1);
inputValue = parseInt($(this).parent().find($('.custom-input')).val());
subTotal = parseFloat(inputValue * unitPrice).toFixed(2);
$(this).closest('.product').find('.total-price span').text(subTotal);
} else if (inputValue =! "") {
inputValue = parseInt($(this).parent().find($('.custom-input')).val());
inputValue += 1
$(this).parent().find($('.custom-input')).val(inputValue);
subTotal = parseFloat(inputValue * unitPrice).toFixed(2);
$(this).closest('.product').find('.total-price span').text(subTotal);
};
});
ので、私はコードを最適化するための関数を作成しました:
function getValues(){
unitPrice = parseFloat($(this).closest('.product').find('.unit-price span').text().substring(3));
subTotal = parseFloat(inputValue * unitPrice).toFixed(2);
return subTotal;
$(this).closest('.product').find('.total-price span').text(subTotal);
};
をし、私の新しいブロックコードがあることのようになります。
$('.spin span:last-child').click(function(){
if ($(this).parent().find($('.custom-input')).val() == "") {
$(this).parent().find($('.custom-input')).val(1);
inputValue = parseInt($(this).parent().find($('.custom-input')).val());
getValues();
} else if (inputValue =! "") {
inputValue = parseInt($(this).parent().find($('.custom-input')).val());
inputValue += 1
$(this).parent().find($('.custom-input')).val(inputValue);
getValues();
};
});
が、私の機能 "でgetValues" ドン'$(this).find ...'という関数内のセレクタが私が思う問題であるはずです。あなたはそれを修正するのに役立つでしょうか?以下のような
getValues(this);
と機能を定義します:あなたが関数の引数としてthis
を渡す必要があり
おかげ