- ベストアンサー
getElementByIdでonClick内を書き換える方法
お尋ねします。 適当なIDを振ったaタグ内の各プロパティを画像の切り替えに応じて 書き換えるスクリプトを試しています。 srcや画像の切り替えなどはうまくいくのですが、 onclick内だけうまく書き換えができません。 onclickはイベントハンドラだから無理という気がするのですが、 なにか方法はないでしょうか。 以下のようなスクリプトを書いています。 myImageName = 0; myImageLink = 1; myImageTarget = 2; myclick = 3; myImage = new Array(); myImage[0]= new Array("01.jpg","ttp://aa.com/","_top","alert('HELLO')"); myImage[1]= new Array("02.gif","ttp://bb.com/","_blank","alert('HI')"); i = 0; function aaa(){ document.getElementById("banner").src = myImage[i][myImageName]; document.getElementById("banner").href =myImage[i][myImageLink]; document.getElementById("banner").target =myImage[i][myImageTarget]; document.getElementById("banner").onclick =myImage[i][myclick]; } ※あとはタイマー用のスクリプトが続きます。 記述が間違っている気はするのですが、 解決策がわかりません。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Function関数で文字列を関数オブジェクトにしてやります。 document.getElementById("banner").onclick = new Function(myImage[i][myclick]);
その他の回答 (1)
- Dumper
- ベストアンサー率28% (24/84)
文字列にせず関数を渡す。 myImage[0]= new Array("01.jpg","http://aa.com/","_top",function(){ alert('HELLO')}); myImage[1]= new Array("02.gif","http://bb.com/","_blank",function(){ alert('HI')});
お礼
この方法でもできました! いずれにしても文字列にするから動かないということですね。 ありがとうございました。
お礼
ちょっと苦戦しましたが、できました! 関数にしないといけないんですね。 勉強になりました。 ありがとうございました。