![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
ホームページのコーディングをしている者ですが、一部のjavascriptがfirefoxで効きません。
クリックした際にサブメニューを表示させていのですが、firefoxだとクリックしてもサブメニューが表示されません。
(IE、safariは正常に表示されます)
どなたか下記ソースでの間違えをご教授いただけますでしょうか。
よろしくお願いします。
【jsファイルの記述】
function dispChange(id) {
if(id.style.display=="none"){
id.style.display="block";
}
else{
id.style.display="none";
}
}
【htmlファイルの記述】
<div id="sublist"><a href="JavaScript:dispChange(movieSub)">>>test</a>
<div id="movieSub" STYLE="display:none">
<div class="SubSub">├<a href="#">test</a></div>
<div class="SubSub">├<a href="#">test</a></div>
<div class="SubSub">└<a href="#">test</a></div>
</div>
</div>
No.1ベストアンサー
- 回答日時:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>Q4132865 TestCase 1</title>
<script type="text/javascript">//<![CDATA[
//【最大の問題点】
//idは文字列であるべきだと思う。
//styleプロパティがあるのは要素なので
//document.getElementByIdを受け取って
//要素を返すようにしてみた
function dispChange(id) {
var element = document.getElementById(id);
if (element == null){
//何書こうかな。
}
if(element.style.display=="none"){
element.style.display="block"; //要素によってはblockではなく空文字列のほうがいいこともある。
}
else{
element.style.display="none";
}
}
//]]>
</script>
</head>
<body>
<!--
説明の都合上,嫌々ながら元のコードをあまり変えなかったが
個人的にはこのマークアップ嫌いでdl,dt,dd要素を使って欲しい
また、安易にa要素をscript発動用要素として用いて欲しくないと思っている。
自分なら全然違うものを書いている
-->
<div id="sublist">
<a href="javascript:dispChange('movieSub')">>>test</a>
<div id="movieSub" style="display:none">
<div class="SubSub">├<a href="#">test</a></div>
<div class="SubSub">├<a href="#">test</a></div>
<div class="SubSub">└<a href="#">test</a></div>
</div>
</div>
</body>
</html>
ご回答ありがとうございます。
firefoxでもうまく動作しました。
idに関してはおっしゃるとおりです。
わざわざ元コードの変更が少なくなるようなコードまで記述して下さり、ありがとうございました。
No.2
- 回答日時:
間違いというわけではないのですが、
IE、Safari、Operaは<div id="movieSub">このように書いたエレメントに対して、
id.style.displayのように、メンバ変数に . でつないでアクセスするJavaScriptらしい書き方で、
window.movieSub("window"は省略可能)が使えますが、
Firefoxのみこの方式をサポートしていません。
IEのみdocument.all.movieSubという形式もサポートしています。
<div id="movieSub">にアクセスするには
document.getElementById('movieSub')を使ってください。
document.getElementByIdは最近のメジャーなブラウザは全てサポートしています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
指定したパスが現URLに含まれて...
-
IFRAMEの表示/非表示を切り替え...
-
removeEventListenerについて
-
【HP作成】クリックすると下...
-
removeAttribute()メソッドで削...
-
プルダウンとチェックボックス...
-
javascriptテキストBOX色を元に...
-
クリックで特定のdiv要素が表示...
-
javascriptのアラートを画面の...
-
取得した要素がインライン要素...
-
IEの半角スペースの連続とinner...
-
変数内容をHTML内で表示する方法
-
jQueryで同じid属性が複数あっ...
-
VBScriptでXMLのデータを取得す...
-
createElementで作成した要素を...
-
クリックすると下に説明文が出...
-
javascriptでツリー表示
-
テキストボックスに入力された...
-
HTMLとJavaScriptで作ったタイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
createElementで作成した要素を...
-
javascriptテキストBOX色を元に...
-
背景色を透明化
-
IFRAMEの表示/非表示を切り替え...
-
removeEventListenerについて
-
iframe内のリンクが飛ばないの...
-
読み込んだQRコードをフォーム...
-
jQueryで特定id以外の下にある...
-
【HP作成】クリックすると下...
-
バッチファイルでカウントアッ...
-
折りたたみ部分にアンカーでリ...
-
取得した要素がインライン要素...
-
onclickとonmouseoverを同時に...
-
表示・非表示のスクリプトで、...
-
jQueryで同じid属性が複数あっ...
-
jQueryでクリックされた要素のi...
-
javascriptでpostした値が取得...
-
CSSで指定したwidthをマウスで...
-
クリックで色変更後に既に変更...
おすすめ情報