ピアノのようなものを作成するために、次のコードを作成しました。ボタン(#start_img
)をクリックすると、それぞれ.piano
divにはpress
クラスが得られ、短い休憩の後で再びそれを削除する必要があります。jqueryでのループ(.each()メソッドを使用)
次に、関数は次の.piano
divにループし、そこで同じアクションを繰り返します。あまりにも難しくはありませんが、問題は動作していないということだけです。コードに何が間違っているのか誰にでも説明できますか?
$('#start_img').on('click', function() {
$('.piano').each(function(index) {
$(this).addClass('press').delay(900).removeClass('press');
});
});
.press {
background-color: silver;
}
.piano {
border: 1px solid black;
display: inline-block;
width: 20px;
height: 60px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='start_img'>Start</button>
<div id='page'>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
<div class='piano'></div>
</div>
残りのコードはどこですか? –
'.delay(900 * index)'これを試してください。あなたはsetTimeoutをこの '}、900 * indexのような遅延で使うべきだと思います); ' – Jai