• 締切済み

関数の重複で動かない?

ブログのサイドバーにjavascriptを使ってるのですが同じものを2個貼り付けたら古い方が動かなくなってしまいました。 関数の重複かも、というとところまではなんとなくわかったのですがどこをどうすれば動くようになるでしょうか? ---------------------------------------- <HTML> <HEAD> <TITLE>TAG index Webサイト</TITLE> <SCRIPT TYPE="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "image/start.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "image/newyork.jpg"; // ポイント時の画像2 var img2 = new Image(); img2.src = "image/london.jpg"; // ポイント時の画像3 var img3 = new Image(); img3.src = "image/yokohama.jpg"; // 設定終了 } // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </SCRIPT> </HEAD> <BODY> <IMG SRC="image/start.jpg" ALT="START" WIDTH="150" HEIGHT="100" NAME="def"> <BR> <A HREF="change3.html" onMouseOver="On('img1')" onMouseOut="Off()">NEW YORK</A> | <A HREF="change3.html" onMouseOver="On('img2')" onMouseOut="Off()">LONDON</A> | <A HREF="change3.html" onMouseOver="On('img3')" onMouseOut="Off()">YOKOHAMA</A> </BODY> </HTML> ----------------------------------------------

みんなの回答

回答No.2

ちょっといじくってみました・・ <HTML> <HEAD> <SCRIPT> var img0 = new Image(); img0.src = "http://x.goo.ne.jp/banner3/20051219/choige_200.jpg"; var img1 = new Image(); img1.src = "http://dir.yahoo.co.jp/talent/images/W01/W01-0074-051205.jpg"; var img2 = new Image(); img2.src = "http://dir.yahoo.co.jp/talent/images/F03/F03-0117-051205.jpg"; var img3 = new Image(); img3.src = "http://dir.yahoo.co.jp/talent/images/W04/W04-0221-051219.jpg"; function On(def,name) { if (document.images) { document.images[def].src = eval(name + ".src"); } } function Off(def) { if (document.images) { document.images[def].src = img0.src; } } // --> </SCRIPT> </HEAD> <BODY> <IMG SRC="http://x.goo.ne.jp/banner3/20051219/choige_200.jpg" ALT="START" WIDTH="200" HEIGHT="200" NAME="def1"><BR> <A HREF="change3.html" onMouseOver="On('def1','img1')" onMouseOut="Off('def1')">NEW YORK</A> <A HREF="change3.html" onMouseOver="On('def1','img2')" onMouseOut="Off('def1')">LONDON</A> <A HREF="change3.html" onMouseOver="On('def1','img3')" onMouseOut="Off('def1')">YOKOHAMA</A><BR> <IMG SRC="http://x.goo.ne.jp/banner3/20051219/choige_200.jpg" ALT="START" WIDTH="200" HEIGHT="200" NAME="def2"><BR> <A HREF="change3.html" onMouseOver="On('def2','img1')" onMouseOut="Off('def2')">NEW YORK</A> <A HREF="change3.html" onMouseOver="On('def2','img2')" onMouseOut="Off('def2')">LONDON</A> <A HREF="change3.html" onMouseOver="On('def2','img3')" onMouseOut="Off('def2')">YOKOHAMA</A> </BODY> </HTML>

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

BODYに書かれている内容がそのまま2つあるというような意味だったら <IMG … NAME="def"> の名前の部分を別々の名前をつけるようにして On や、Off で使われている名前の def を On('def,'img1') Off('def') のように対象とする名前を渡すようにして function On(imgName, name) { if (document.images) { document.images[imgName].src = eval(name + '.src'); } } の様に、渡した変数による名前を使うようにします。

関連するQ&A