jQuery hide()はhide(0)に等しくない

1234 ワード

実際の使用では、HTML要素をhide()関数で隠すことがよくありますが、通常は問題ありませんが、2次ドロップダウンメニューを1回作るときに問題が発生し、後で「speed」が省略できない場合があることに気づきました.「speed=0」であっても、hide()がhide(0)に等しくない場合があります.次に、例を示します.
ウェブサイトの2段階のドロップダウンナビゲーションをして、簡単なjQueryを設計して、コードは以下の通りです:
  <script type="text/javascript">
jQuery(document).ready(function($) {
$('#nav li').hover(function() {
$('.sub', this).slideDown(300);
},function() {
$('.sub',this).hide();
});
});
</script>

 
テストしてみたところ、マウスの動きが速すぎるとプルダウンメニューが隠れず、複数のプルダウンメニューが同時に表示される場合、hide()は失効しているようです.その後、何度も修正した結果、speedパラメータを追加すれば正常であることが分かった.speedは隠す速度を設定するために用いられ、数値が小さいほど隠す速度が速くなり、直ちに隠す必要がある場合、speedは0に設定することができ、普段のアプリケーションでは0を省略するが、この例ではspeedを500、300、50、0に値し、プログラムはいずれも満足のいく効果を得ることができるが、speedを省くと失効する場合がある.説明speedは場合によっては省略できませんが、hide()はhide(0)に等しくありません!もちろんこの例ではhide()の代わりにslideUp()を用いることもでき、関数slideUp(speed)ではパラメータspeedは省略できる.
  <script type="text/javascript">
jQuery(document).ready(function($) {
$('#nav li').hover(function() {
$('.sub', this).slideDown(300);
},function() {
$('.sub',this).slideUp();
});
});
</script>