- ベストアンサー
クリックでリンク先の切り替え
- クリックしたときにリンク先を変更する方法を教えてください
- 画像の切り替えとリンクの切り替えをクリック回数に応じて行いたいです
- 画像を囲っているリンクのURLをクリックするごとに切り替える方法を知りたいです
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「画像をクリックした回数によってリンク先を切り替える」 ですと、 ><a href="http://www.test.jp"><img src="test2" name="shop_img" /></a> 1回目のクリックでリンク先に飛んでしまうのでは? change()をどこで呼び出していますか? <img onclick="change()">でしょうか? それでも1回目のクリックでやはり飛んでしまうのでは。 「画像クリックで自身を入れ替え、 ボタンクリックで画像クリックの回数に対応したジャンプ先へ飛ぶ」 という風にしてはいかがでしょうか。 でないとクリックしてすぐジャンプしてしまうから、 画像が入れ替わっても意味が無いような。。 "target_blank"ならわからなくも無い気もしますが。 例えばこんな感じです。 <script type="text/javascript"> <!-- var Images = new Array(); var Jumps = new Array(); Images[0] = new Image(); Images[0].src = "test1.jpg"; Images[0].alt = "test1"; Jumps[0] = "test1.html"; Images[1] = new Image(); Images[1].src = "test2.jpg"; Images[1].alt = "test2"; Jumps[1] = "test2.html"; Images[2] = new Image(); Images[2].src = "test3.jpg"; Images[2].alt = "test3"; Jumps[2] = "test3.html"; var i=0; function ImgChange(){ i++; // クリックの回数 // 配列の個数以上の回数クリックされたら最大値に固定 if(i>Images.length){ i=Images.length; } // 配列は0から始まるので-1する document.shop_img.src = Images[i-1].src; document.shop_img.alt = Images[i-1].alt; } function LocationChange(){ // クリックが1回以上ならジャンプ if(i>0){ window.location.href = Jumps[i-1]; }else{ return false; } } //--> </script> </head> <body> <img id="shop_img" src="test0.jpg" alt="test0" onclick="ImgChange()"><br> <button type="button" tabindex="0" accesskey="j" onclick="LocationChange()">Jump!</button> </body> </html> あと、画像は先読みしたほうが良いと思います。 1回目のタイムラグがなくなるので。
お礼
丁寧な解説ありがとうございました! すみません、私の書き方のミスです。さすがにhtmlをそのまま書くわけにいかなかったので・・・。 正確には、グラビアの用な写真をクリックすると、changeが発動するように書いておりました。 助かります、ありがとうございました