OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

PreLoadとImageオブジェクト

  • すぐに回答を!
  • 質問No.164486
  • 閲覧数59
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 66% (49/74)

お世話になります。
自分なりにやってみたのですが、エラーが解決できないため、知恵を貸してください。

やりたいことは、「あるリンク画像を押すと、画像が切り替わり(オン)、押されなかった画像はデフォルト画像に戻る(オフ)」ということです。

ソース

OnBar = new Array();
OnBar[0] = "On_1.gif";
OnBar[1] = "On_2.gif";

OffBar = new Array();
OffBar[0] = "Off_1.gif";
OffBar[1] = "Off_2.gif";


imgOn = new Array();
imgOff = new Array();


for ( i=0; i<2; i++ ){
var imgOn[i] = new Image();
var imgOff[i] = new Image();
}


//画像の割り当て
function fncPreLoad(){
for ( i=0; i<2; i++ )
imgOn[i].src = OnBar[i];
imgOff[i].src = OffBar[i];
}

//画像変更
function fncChangeBar(Cnt){
for ( i=0; i<23; i++ )
if ( i = Cnt ){
document.images[Cnt].src = imgOn[i];
} else {
document.images[Cnt].src = imgOff[i];
}
}


<body onLoad="fncPreLoad()">

<img src="Off_2.gif" onclick="fncChangeBar(0)" name="images0">


これで実行するとまず、fncPreLoadで「;」がありませんでエラーが出て、onClickイベントで「オブジェクトがありません」でエラーが出てしまいます。

どなたか添削してやってください。
お願いいたします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

> forのかっこは入れてもエラーが出たので、「入れないのかな?」と勝手に思って入れてません。
これは入れないとダメです。
function fncPreLoad() {
  for ( i=0; i<2; i++ ) {
    imgOn[i].src = OnBar[i];
    imgOff[i].src = OffBar[i];
  }
}

function fncChangeBar(Cnt) {
  for ( i=0; i<23; i++ ) {
    if ( i = Cnt ){
      document.images[Cnt].src = imgOn[i];
    } else {
      document.images[Cnt].src = imgOff[i];
    }
  }
}

それともう1つ。
  for ( i=0; i<2; i++ ){
  var imgOn[i] = new Image();
  var imgOff[i] = new Image();
  }
のvarも違反ですので、取ってください。
付けるなら、
  OnBar = new Array();
  OffBar = new Array();
  imgOn = new Array();
  imgOff = new Array();
の行に付けます。

それから、これは文法違反ではありませんが、
  if ( i = Cnt ){
では、iにCntを代入してしまいます。
等しいか調べるには、
  if ( i == Cnt ){
とします。

多分こんな感じではないでしょうか。
お礼コメント
cat_tomato

お礼率 66% (49/74)

ありがとうございます。

何でループしてたかわかりました。
代入していては終了条件になりませんね。

何とか動作してくれたのですが、画像を変更してくれないので、もう少しがんばってみます。
本当にありがとうございました。
投稿日時 - 2001-11-07 13:49:01
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル6

ベストアンサー率 33% (1/3)

パッと見たらforの始まりと終りの括弧{ }が無いような気がしますよ。 ...続きを読む
パッと見たらforの始まりと終りの括弧{ }が無いような気がしますよ。
お礼コメント
cat_tomato

お礼率 66% (49/74)

さっそくの回答、ありがとうございます。

forのかっこは入れてもエラーが出たので、「入れないのかな?」と勝手に思って入れてません。
投稿日時 - 2001-11-07 12:53:23


  • 回答No.2
レベル10

ベストアンサー率 50% (72/143)

こんにちはcat_tomatoさん、xruzです。 var imgOn = new Array(); var imgOff = new Array(); for ( i=0; i<2; i++ ){ imgOn[i] = new Image(); imgOff[i] = new Image(); } varをつけるならこうしましょうね。 function fn ...続きを読む
こんにちはcat_tomatoさん、xruzです。

var imgOn = new Array();
var imgOff = new Array();

for ( i=0; i<2; i++ ){
imgOn[i] = new Image();
imgOff[i] = new Image();
}
varをつけるならこうしましょうね。

function fncPreLoad(){
for ( i=0; i<2; i++ ) {
imgOn[i].src = OnBar[i];
imgOff[i].src = OffBar[i];
}
}
ここはやっぱり{}が要りますよ。

がんばってくださいね(~:~i
お礼コメント
cat_tomato

お礼率 66% (49/74)

ありがとうございます。
やっぱりかっこは入りました。
どうやらvarがいらなかったってところまでは気づきました。

今度はonClickイベントでループしてしまうようです。
はぁ、問題山積みですが、がんばってみます。

本当にありがとうございました。
投稿日時 - 2001-11-07 13:46:22
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ