- ベストアンサー
画像メニューの開閉
JavaScriptで画像メニューの開閉を行いたいのですが、 うまく動きません。 「aaa」が閉じていた場合には「aaa」を開くまではできたのですが、 「bbb」を閉じるという1行を追加したら動かなくなりました。 どなたかご教授願います。 【JavaScript】 function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == '') document.getElementById("aaaSub").innerHTML = '<img src="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; else document.getElementById("aaaSub").innerHTML = ''; } 【HTMLソース】 <ul> <li><a href="#" onClick="showSubmenu01()"><img src="img/menu_aaa.gif" /></a></li> <li><div id="aaaSub"></div></li> <li><div id="bbbSub"><img src="bbb.gif" /></div></li> </ul>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下のHTMLをそのままコピペして実行してみてください。 うまくいくならJavaScriptの配置の問題や、例えば全角スペースが入っているなどが考えられます。 IE7で検証しましたがうまくいきました。 この程度のスクリプトがIE8でできなくなるってことはないと思うので・・・。 <html> <head> <title>sample</title> <script type="text/javascript"> <!-- function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == '') { document.getElementById("aaaSub").innerHTML = '<img src="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; } else { document.getElementById("aaaSub").innerHTML = ''; } } // --> </script> </head> <body> <ul> <li><a href="#" onClick="showSubmenu01()"><img src="img/menu_aaa.gif" /></a></li> <li><div id="aaaSub"></div></li> <li><div id="bbbSub"><img src="bbb.gif" /></div></li> </ul> </body> </html>
その他の回答 (3)
- heikuu2009
- ベストアンサー率33% (5/15)
スクリプトエラーなのか、機能が実現しないのか... もし後者なら"画像メニューの開閉"では説明不足ではないですか? ※yyr446さんが言うようにこのコードにエラーはないはずです
お礼
解決いたしました。 ありがとうございました。
補足
すみません。スクリプトエラーです。 IE8とOperaで検証しているのですが、 下記のようなエラーとなり、正常に動かないのです。 ------------------------------ メッセージ: Syntax error ライン: 6 文字: 1 ------------------------------ document.getElementById("bbbSub").innerHTML = ''; の1行を削除すると正常に動くのですが……。 アドバイスいただけたら幸いです。
- yyr446
- ベストアンサー率65% (870/1330)
このソースを見る限りおかしいところは、無いはずですが、 <img src="bbb.gif" />は<img src="img/bbb.gif" />でなくてもよいのですね。 このソースを私のサイトに貼って(画像は変えました)、IE7.0とFireFox3.0で試しましたがエラーは出ませんでした。
お礼
解決いたしました。 ありがとうございました。
補足
IE8とOperaで検証しているのですが、 下記のようなエラーとなり、正常に動かないのです。 ------------------------------ メッセージ: Syntax error ライン: 6 文字: 1 ------------------------------ document.getElementById("bbbSub").innerHTML = ''; の1行を削除すると正常に動くのですが……。 アドバイスいただけたら幸いです。
- yyr446
- ベストアンサー率65% (870/1330)
{ } が足りません。 function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == ''){ document.getElementById("aaaSub").innerHTML = '<imgsrc="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; } else { document.getElementById("aaaSub").innerHTML = ''; } }
お礼
解決いたしました。 ありがとうございました。
補足
{ } 忘れてました。失礼しました。 ただ { } をつけてもやっぱりエラーになってしまいます。 他におかしいところがあったら教えていただけないでしょうか?
お礼
解決いたしました。 ありがとうございました。