アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして。
JSはプログラムを組んだことがなく、悩んでおります。
一応、アコーディオンメニューは設置しておりますが、クリックで開閉するアコーディオンメニューなので、困っております。

htmlのソースです。
<ul class="acc">
<li><a href="1">category1</a>
<ul class="fxmn">
<li><a href="11">menu 1-1</a></li>
<li><a href="12">menu 1-2</a></li>
<li><a href="13">menu 1-3</a></li>
</ul>
~以下省略します~

そしてjavascriptのソースです。
var j$ = jQuery;

j$(function(){
j$(".acc").each(function(){
j$("li > a", this).each(function(index){
var $this = j$(this);

if(index > 0) $this.next().hide();

$this.click(function(){
j$(this).next().toggle().parent().siblings()
.children("ul:visible").hide();
return false;
});
});
});
});

すみませんが、よろしくお願いいたします。

A 回答 (3件)

こんなんでどうでしょう?



<style>
ul.acc ul{
display:none;
}
ul.acc li{
behavior:expression(
this.onmouseover=function(){this.className="hover"}
,this.onmouseout=function(){this.className=""}
)
}
ul.acc li:hover ul,ul.acc li.hover ul{
display:block;
}
</style>
<ul class="acc">
<li><a href="1">category1</a>
<ul>
<li><a href="11">menu 1-1</a></li>
<li><a href="12">menu 1-2</a></li>
<li><a href="13">menu 1-3</a></li>
</ul></li>
<li><a href="1">category2</a>
<ul>
<li><a href="11">menu 2-1</a></li>
<li><a href="12">menu 2-2</a></li>
<li><a href="13">menu 2-3</a></li>
</ul></li>
</ul>
    • good
    • 0
この回答へのお礼

ソースのご提供ありがとうございます。
CSSを設置してみましたが、状況は変わりませんでした。

私のほうでもいろいろと探してみます。
ありがとうございます。

お礼日時:2009/10/30 16:13

なんだかこれとほとんど同じですね…


http://triplexxx.jp/archives/150
基本的にはonclickで処理する替わりに、onmouseover、onmouseoutなどの場合に開閉するようにしてあげればよいはずですけど。

ご自分で作成するのなら、かなり近いのがこんな感じ?
http://hyper-text.org/archives/2006/12/slidemenu …


つくるのが面倒なら、ライブラリを利用する手もあります。
(設定でクリック、マウスオーバーなどを選択できるもの)
http://docs.jquery.com/UI/Accordion#event-change
http://www.i-marco.nl/weblog/yui-accordion/#basic
http://www.dynamicdrive.com/dynamicindex17/ddacc …

あとちゃんと中身を確認してないけど
http://jqueryfordesigners.com/slide-out-and-draw …
http://www.leigeber.com/2008/10/animated-javascr …
http://tutorialblog.org/10-javascript-accordion- …


おまけ (CSSで実現するもの = #1様の回答の方法)
http://digibot.jp/blog/2008/04/css.html
http://css-eblog.com/csstechnique/accordionmenu. …
(IE対応にはスクリプトが必要ですが…)
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろと勉強になります。早速、参考にさせていただきたいと思います。

お礼日時:2009/10/30 15:42

jQueryを使っているならclickをmouseoverに変えるだけでいいんじゃないでしょうか。



var j$ = jQuery;

j$(function(){
j$(".acc").each(function(){
j$("li > a", this).each(function(index){
var $this = j$(this);

if(index > 0) $this.next().hide('normal');

$this.mouseover(function(){
j$(this).next().show('normal').parent().siblings()
.children("ul:visible").hide('normal');
return false;
});
});
});
});


動作が分りやすいようにスピードを入れてみました。
アコーディオンというと、toggleよりもshowの方がいいような気がして勝手に変えましたが、好みでなければ戻してください。
    • good
    • 0
この回答へのお礼

無事に、マウスオーバーでアコーディオンメニューになりました。

いろいろとご親切にありがとうございました。

お礼日時:2009/11/02 10:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!