« TDエレメントをJavascriptの配列として使用する | メイン | ユーザースタイルシートを使用してみる »

onclickイベントを動的に追加する

TDエレメントにonclickイベントを動的に追加します。
LightsOut3_new.htmlで、25個あるTDにソースとして、


<td onclick="clk(this);">

と記述するのが面倒だったので、スタイルシートでクラスのイベントが記述できないかと調べてみました。
ieならbehaviorの指定ができそうでしたがsfariなので無理でした。
そこで、bodyのloadの際に動的に貼付けることにしました。

<body onload="load()">

bodyタグのonloadイベントでload()関数を呼びます。
load関数はこんな感じです。

function load() {
allTD = gameboard.getElementsByTagName("td");
for (i=0; i<25; i++){ allTD[i]. onclick = function() {clk(this); };}
}

ポイントは追加する関数に引数があるときの記述ですが、
上記のように右辺を function() {clk(this);}として代入します。
引数がない場合は、. onclick = foo; と書きます。
この場合の注意点は()を書かないことと、
このコード以前のスクリプトで代入したい関数(例ではfoo関数)を記述しておくことです。
このページを参考にしました。

ひとつ前の投稿は「TDエレメントをJavascriptの配列として使用する」です。
次の投稿は「ユーザースタイルシートを使用してみる」です。

トラックバック

このエントリーのトラックバックURL:
http://www.xillion.net/mova/mt-tb.cgi/225

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年01月03日 12:25に投稿されたエントリーのページです。

メインページアーカイブページも見てください。

Powered by
Movable Type 3.34