- 締切済み
画像を貼り出してその後、その画像をクリックすると大きく表示されるように
画像を貼り出してその後、その画像をクリックすると大きく表示されるようにしたいのですが、どうしたら良いかわかりません。 <html> <head> <title>画像を大きくする</title> <script type="text/javascript"> <!-- var imagetachi = 5; //イメージの切り替え function kirikae(num){ document.main.src = "big/photo" + num + ".jpg"; } // --> </script> </head> <body> <center> <script type="text/javascript"> <!-- //サムネールの書き出し for (i=1; i <=imagetachi; i++) { document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(i)">'); } // --> </script> <hr> <img src="big/photo1.jpg" name="main"> </center> </body> </html> どうやらkirikae(i)をkirikae(' + i +')にすれば良いとまではわかったのですが、なぜ(' + i +')にしないといけないのかがわかりません。 (' + i +')にすると関数の処理が document.main.src = "big/photo" + + i + + ".jpg";になってしまいませんか?? 初心者なので+ i +の意味がよくわかりません。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- zeff
- ベストアンサー率69% (137/198)
document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(i)">'); ↓ document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(' + i + ')">'); (' + i +')で見てしまうからいけない。 分解したほうがわかりやすい。 document.write( '<img src="small/photo' + i + '.jpg" onclick="kirikae(' + i + ')">' ); シングルクォーテーションで囲われているブロックが文字列ですので、 '.jpg" onclick="kirikae(i)">' にしてしまうと、それがひと塊に文字列として扱われてしまう、ということです。 その外に出せば変数として扱われて値が変わる。
- zeff
- ベストアンサー率69% (137/198)
要は足し算と同じなわけですから、 ○D = A + B + C; ×D = ABC;
- fujillin
- ベストアンサー率61% (1594/2576)
文字列なので、じかに書き出してみれば… ◆コード for (var i=1; i<4; i++) { document.write('onclick="kirikae(i)"' + '<br>'); } ◇実行結果 onclick="kirikae(i)" onclick="kirikae(i)" onclick="kirikae(i)" ◆コード for (var i=1; i<4; i++) { document.write('onclick="kirikae(' + i + ')"' + '<br>'); } ◇実行結果 onclick="kirikae(1)" onclick="kirikae(2)" onclick="kirikae(3)"
補足
kirikae(i)のままだとiが文字列と認識されてしまうということでしょうか? +i+はiが数値として認識するために必要な記述ということでしょうか?
- yyr446
- ベストアンサー率65% (870/1330)
document.main.src = "big/photo" + + i + + ".jpg";になってしまいませんか?? そんなことはない。よく見て! document.write( '<img src="small/photo' + i + <== iは1からimagetachiの値まで1づつ増える '.jpg" onclick="kirikae(i)">' ); となってるでしょ。 だから <img src="small/photo1.jpg" onclick="kirikae(i)"> <img src="small/photo2.jpg" onclick="kirikae(i)"> <img src="small/photo3.jpg" onclick="kirikae(i)"> ----- が書き出される。
補足
書き方が悪かったみたいですね。 すみません。 kirikae(i)→プログラムがちゃんと動かない kirikae(+i+)→プログラムはちゃんと動作する なぜiの前後に+を書き込む必要があるのか訊きたかったのです。 そもそも+i+ってどういう意味なのでしょうか?
補足
すみません。 いまだによくわかりません。 forの条件でiがimagetachiの数になるまで繰り返すことになっていますよね。 それでiは繰り返すたびに1ずつ増えるようになっています。 なら、onclickの方に入っているiも1つずつ増えないのでしょうか? なぜimg src=の中にあるiだけが増えるのでしょうか?? kirikae(+i+)の+i+とはその前に使っている<img src="small/photo' + i + '.jpg"の中にある+i+を使うと言う意味なのでしょうか? バカな質問だと思うのですが、すみませんが教えてください。