私は JavaScript でいくつかの実験を行っており、4 つの項目のリストが水平方向に表示され、各リスト項目にはonmouseover
andonmouseout
イベントが割り当てられています。
各アイテムのonmouseover
イベントは、間隔を使用して時間の経過とともにアイテムの高さを増加させる関数を実行します。
各アイテムのoutmouseover
イベントは関数を実行し、別の間隔を使用して時間の経過とともにアイテムの高さをデフォルト値まで減らします。
次のシナリオで機能しています。onmouseover
リスト項目に対してトリガーすると、高さが期待どおりに増加し、リスト項目からマウスを離すと、高さが期待どおりに減少します。
ただし、問題は、次のシナリオでは機能しないようです。onmouseover
リスト項目に対してトリガーすると、高さが期待どおりに増加しますが、項目が元のサイズに戻る前onmouseover
に別のリスト項目に対して別のイベントをトリガーすると、前のリスト項目の関数の実行が終了していません。onmouseout
詳細が不足している場合は申し訳ありません。明らかに、私は物事を説明するのが非常に下手です....ソースコードへのリンクと、コードをテストして何が起こっているかを確認できるサイトがあります。
たぶん私は思ったほどJavaScriptの知識がないので、解決策や修正は素晴らしいですが、なぜこれが起こっているのかについてのアドバイスや何らかの説明を喜んで受け入れます.
最初は、複数のインターバル タイマーを同時に実行することはできないと考えていましたが、いくつかの調査の結果、実行できることがわかりました。だから今私はそれがonmouseover
とonmouseout
イベントの間の競合であるかどうかを考えています。
アドバイス、ガイダンス、または解決策をいただければ幸いです。
ソース:
https://docs.google.com/open?id=0B6XLOOGyKVdWVkpSUklmMVI5QUk
テスト サイト:
http://www.play-hookey.com/htmltest/
(その Google ドキュメントの内容をコピーして、html テキスト領域に貼り付けるだけです)サイトで私が話していることを確認してください)