お世話になります。
自分なりにやってみたのですが、エラーが解決できないため、知恵を貸してください。
やりたいことは、「あるリンク画像を押すと、画像が切り替わり(オン)、押されなかった画像はデフォルト画像に戻る(オフ)」ということです。
ソース
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イベントで「オブジェクトがありません」でエラーが出てしまいます。
どなたか添削してやってください。
お願いいたします。
No.2
- 回答日時:
こんにちは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
ありがとうございます。
やっぱりかっこは入りました。
どうやらvarがいらなかったってところまでは気づきました。
今度はonClickイベントでループしてしまうようです。
はぁ、問題山積みですが、がんばってみます。
本当にありがとうございました。
No.3ベストアンサー
- 回答日時:
> 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 ){
とします。
多分こんな感じではないでしょうか。
ありがとうございます。
何でループしてたかわかりました。
代入していては終了条件になりませんね。
何とか動作してくれたのですが、画像を変更してくれないので、もう少しがんばってみます。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<tr>指定した表の行要素をボ...
-
初心者です。gulpでコンパイル...
-
階層別の組織図の自動作成について
-
ローディングアニメーションの...
-
食材の期限を管理するためにGAS...
-
前回の質問の続き function mov...
-
このプログラムに、王手をかけ...
-
前回の質問の続き function mou...
-
このプログラムに王様の逃げ道...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
二次元配列を使って順位をだす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jQueryでサーバー上のファイル...
-
window.openで値の渡し方を教え...
-
JAVAで画像をボタンで切り替え...
-
HPB_SCRIPT_ROV_50
-
this.src等のthisについて
-
画像と文字を同時に切り替えたい
-
画像の下に説明文をつけて切り...
-
imgのsrcに値を設定するには
-
画像アップロードしたい
-
JavaScriptで画像置換えてクリ...
-
画像をランダムな座標に一定の...
-
Javaにて画像を変更させる動作...
-
クリッカブルマップでリモート...
-
イベントハンドラを完全に外部...
-
画像の入れ替え
-
【javascript】マウスオンで画...
-
JavaScriptを外部ファイルにす...
-
オンマウスで画像と文字を同時...
-
画像をクリックして変数に値を代入
-
HTMLページ内のタグに対しての...
おすすめ情報