クリック数に応じて、個々のフィールド値を特定の値にアニメーション化するスクリプトを作成しました。スクリプトは正常に動作し、問題は1つしか表示されません。最初のフィールドがMAX(ケース5)のときは、プラスをクリックしても次のフィールドで何も起こりません。値が5のときに2番目の要素の大文字小文字が実行されない
なぜスクリプトが間違っているのかわかりません。手伝ってくれますか?
click = 0;
\t
$(".max").on("click", function() {
\t \t
\t elem = $(this).prev();
\t \t
\t switch(click) {
\t \t case 0:
\t \t elem.animateNumber({number: 25000});
\t \t break;
\t \t case 1:
\t \t elem.animateNumber({number: 50000});
\t \t break;
\t \t case 2:
\t \t elem.animateNumber({number: 75000});
\t \t break;
\t \t case 3:
\t \t elem.animateNumber({number: 100000});
\t \t break;
\t \t case 4:
\t \t elem.animateNumber({number: 500000});
\t \t break;
\t \t case 5:
\t \t elem.text("MAX");
\t \t break;
\t }
\t click++;
\t \t
});
\t
$(".min").on("click", function() {
\t
\t elem = $(this).next();
\t \t
\t switch(click) {
\t case 0:
\t elem.text("MIN");
\t break;
\t case 1:
\t elem.animateNumber({number: 10000});
\t break;
\t case 2:
\t elem.animateNumber({number: 25000});
\t break;
\t case 3:
\t elem.animateNumber({number: 50000});
\t break;
\t case 4:
\t elem.animateNumber({number: 75000});
\t break;
\t case 5:
\t elem.animateNumber({number: 100000});
\t break;
\t }
\t click--;
\t \t
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-animateNumber/0.0.14/jquery.animateNumber.js"></script>
<section class="gen-box-field">
<button type="button" class="min">-</button>
<div id="param1">10000</div>
<button type="button" class="max">+</button>
</section>
<section class="gen-box-field">
<button type="button" class="min">-</button>
<div id="param2">10000</div>
<button type="button" class="max">+</button>
</section>
問題は次のとおりです。クリックは共有されています。変数clickはどちらの要素にも含まれていませんが、要素間で共有されています。代わりに、 'var clicked = [0,0] 'のような配列を作成して、.gen-box-fieldのインデックスに一致するインデックスの配列のメンバーにアクセスすることができます – Snowmonkey
私に例を教えてください? – sauero
あなたの問題についてスノーマンが正しいです。私は実際には、[.data](https://api.jquery.com/data/)を使用して、各要素のクリック数を個別に保存します。 –