今日の課題
showL()
を正常に動作するよう調査する
目的
- 動作不良の改善
作業録
動作不良を確認していたところ、上述のshowL()
がそもそも意図した動作をしていなかった。
以下のソースが意図した動作をすれば、画面には▼が表示される。 しかし、実際には出力されなかった。
<SPAN ID="nextM"><a href="javascript:click()">▼</a></SPAN>
showL("nextM"); function showL(layName){ if(document.layers)document.layers[layName].visibility='show' //NN用 if(document.all)document.all(layName).style.visibility='visible' //IE用 }
手入力で実行
表示処理
コンソールから、showLと同様のコードを実行してみる
▼が表示された。
document.all存在チェック処理
まさかと思い実行する。
falseの評価を受けていた。
なお、document.all単体で実行すると
しっかり値が返ってくる。
つまり、document.all
は存在する値を返しておきながら、ifにかけた時、false
を返す、ということになる。
document.allからの脱却
document.allについて軽く調べてみると、なにか闇の深さを感じたので、getElementById
に切り替える。
mahoris-program.blog.so-net.ne.jp
showL()
のついでにhideL()
も手を加える
// /littlelady/js/eventP.js ///////////////////////////////////// //○レイヤーを表示する function showL(layName){ document.getElementById(layName).style.visibility='visible'; } ///////////////////////////////////// //○レイヤーを消す function hideL(layName){ document.getElementById(layName).style.visibility='hidden'; }
修正した結果、startから遷移した直後、▼が表示されるようになった。