それぞれに関連付けられたデータ値を持つ特定の数の div があります。ユーザーが div を選択すると、クラスが div に追加されます。クラスが追加された div に応じて、入力ボックスの値を更新したいと思います。ユーザーがボックスをもう一度クリックしてクラスを削除した場合は、値を減らしたいと思います。これが私のjQueryです:
$(".vendor-icon").click(function() {
$(this).toggleClass('vendor-icon-active');
var total = 0;
var item = $(this);
if ($(item).hasClass('vendor-icon-active')) {
total = total + $(item).data('value');
}
if (!$(item).hasClass('vendor-icon-active')) {
total = total - $(item).data('value');
}
});
div の設定方法の例を次に示します。
<div class="vendor-icon website-management" data-value="300"></div>
<div class="vendor-icon make-an-offer" data-value="200"></div>
<div class="vendor-icon email-marketing" data-value="100"></div>
1 番目と 2 番目の div が選択されている場合、入力の値は 500 である必要があります。3 番目の div の 2 番目が選択されている場合、入力の値は 300 である必要があります。
現在、ユーザーが最初の div を選択すると、値は 300 になります。次に 2 番目の div を選択すると、値は 500 ではなく 200 に変わります。また、ユーザーが最初の div をクリックすると、値は 300 と表示されますが、 div をもう一度クリックすると、値が 0 ではなく -300 に変わります。