みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

関数の重複で動かない?

ブログのサイドバーに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>

----------------------------------------------

投稿日時 - 2006-01-15 22:29:46

QNo.1898786

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(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>

投稿日時 - 2006-01-20 23:23:07

ANo.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');
}

}
の様に、渡した変数による名前を使うようにします。

投稿日時 - 2006-01-16 00:18:58

あなたにオススメの質問