- ベストアンサー
Mootools Toggleを1ページで複数回使用する方法
- Mootools Toggleを使ってJavaScriptのスライドメニューを1ページで複数回使用する方法について教えてください。
- どのJavaScriptの部分を修正すればいいのかわからず困っています。
- idを使わずにclassのみを使用する方法を知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Mootoolsを使ったことがないので詳しいことは分かりませんが、公式のドキュメントを見る限りFx.Slideにはelementsが渡せないようなので、$eachをつかって反復処理させなければならないと思います。 <a href="#" class="toggle">Click Here</a> <ul class="v-menu"> <li>item</li> </ul> <ul class="v-menu"> <li>item</li> </ul> <script type="text/javascript"> var mySlideElements = []; $each($$('.v-menu'), function(item, index, object) { mySlideElements.push(new Fx.Slide(item)); mySlideElements[index].hide(); }); $$('.toggle').addEvent('click', function(e) { e = new Event(e); $each(mySlideElements, function(item, index, object) { item.toggle(); e.stop(); }); }); </script> このような感じでいかがでしょうか。
その他の回答 (2)
コードに一部書き忘れがありましたので修正します。 $$('.toggle').addEvent('click', function(e){ e = new Event(e); mySlide.toggle(); e.stop(); });
補足
<a class="toggle">で動くようになりました。 ありがとうございます! <ul id="v-menu2" class="v-menu">に関しても、 classのみの使用にすることは可能でしょうか? var mySlide = new Fx.Slide('v-menu2'); mySlide.hide(); $$('.toggle').addEvent('click', function(e){ e = new Event(e); mySlide.toggle(); e.stop(); }); 度々お手数をおかけいたしますが、 よろしくお願いいたします。
こんにちは。 $$関数は、スタイルシートのセレクタと同じように要素を取得することが出来ますので、$$関数で取得した要素にイベントを設定してあげればいいと思います。 $$('.toggle').addEvent('click', function(e){ e = new Event(e); mySlide.toggle(); e.stop();
お礼
早速のお返事ありがとうございます!! 無事解決いたしました。