ドロップダウンメニューをjQueryで

ドロップダウンメニューは実装するのが簡単です!

命令は「mouseover・mouseout」とは違う、「hover」というものがでてきました。

記述の仕方はこんな感じです。

 

$ ( セレクタ ).hover(function(){

         マウスオーバー時の処理

},function(){

         マウスアウト時の処理

});

 

function()をカンマでつなげての記述は今まで登場してこなかったので、少々戸惑いました~。「hoverはこういうもの!」と覚えてしまおうと思います。

 

それと、孫メニューつき、多階層ドロップダウンメニューはcssと合わせて記述していきます。親メニューのaタグ、孫メニューのaタグをposition指定しての、slideDown()・slideUp()します。

 

 

ここまで、「実装するのが簡単」と言いましたが、実は自分でやってみて躓いたところがあります。「this」です!

実はここまでの章の間に「this」はなんとなく分っているつもりでした。

複数の要素があるとき、イベントを起こしたものに対してだけアクションを起こす、という感じです。

今回も確かにhoverした時のulタグを指定してあげるのに、

$( ' ul:not:(:animated) ', this ).slideDown(' fast ');

$( ' ul ', this ).slideUp(' fast ');

という記述が必要でした。でも、いざ自分で書いてみるとこの「this」を忘れがちです。。「this」がないだけで動いてくれないので、非常に大切です!

 

1章で「$(this)はイベントが発生した要素を取得できます」と書いてあります。そこをちゃんと頭に置いておいて、あとは何度も自分で試してみる、が良いかも…と思っています。