- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:onClickで2回目のクリックでもとの画像に戻す)
JavaScriptでサイドメニューの画像をクリックで変更する方法
このQ&Aのポイント
- JavaScriptを使用してサイドメニューを作成しています。大メニューをクリックすると、小メニューが開くようになっています。しかし、大メニューのクリックに応じて画像を変更する方法がうまくいきません。
- スクリプトとHTMLでの実装を示していますが、1回目のクリックでは大メニューの画像が変わるのですが、2回目のクリックでは何も起こりません。
- 解決方法をご存知の方、教えていただけないでしょうか?お願いします!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下のようにソースを変更してみてください。 [HTML] ○変更前 <img src="image/fg.jpg" width="210" height="26" onclick="this.src='image/fg_on.jpg'" onlclick="this.src='image/fg.jpg'"/> ○変更後 <img id="img" src="image/fg.jpg" width="210" height="26"> [JavaScript] ○変更前 if(obj)obj.style.display=(obj.style.display=="none")?"block":"none"; ○変更後 if(obj) { imgobj=(document.all)?document.all('img'):((document.getElementById)?document.getElementById('img'):null); if (obj.style.display=="none") { obj.style.display="block"; imgobj.src = 'image/fg_on.jpg'; } else { obj.style.display="none"; imgobj.src = 'image/fg.jpg'; } } あと三項演算子は可読性を著しく低下させるので、 できるだけ使用しないようにしましょう。
お礼
ご回答いただきありがとうございました!! 丁寧なご説明で、とってもわかりやすかったです!。 新たにidをつけて、指定をしてあげればよかったのですね。 初心者ですみません。 また、三項演算子についてもありがとうございます。 可読性を低下させる・・・とは知りませんでした! 今後使用しないようにしてみます! ほんとうにありがとうございました!