2013年9月23日(月)
[Javascript] this #■パソコン・通信 パレット付きの『子猫の手』を開発中である。
イベントが起きたオブジェクトをthisで記述できるが、今までは、関数の引数にそのオブジェクトを渡して、関数内で利用するという、面倒臭いことをやっていた。
<html>
<head>
<script>
function
_click($object){
alert($object.id);
}
</script>
</head>
<body>
<div
id="memo"
onclick="_click(this)">
</body>
</html>
下記が、改良版。ページを読み込んだら、オブジェクトへのクリックを監視。一見、コード数が増えているが、監視するオブジェクトが多くなると、ルーチン化で劇的にコード数が減るのだ。
<html>
<head>
<script>
function
_setup(){
document.getElementById("memo").
onclick
=
_click;
}
function
_click(){
alert(this.id);
}
</script>
</head>
<body
onload="_setup();">
<div
id="memo">
</body>
</html>
P.S.
IE9以上は、Mozilla系のプログラムとの互換性が高い。問題は、WindowsXPはIE8までということで、こちらはIE系のプログラムでないと動かない。でも、こちらのプログラムの方がシンプルで作りやすいのだ。
P.S.2
下記のリンクは、色が付いた■にマウスを重ねると、色のスタイルが表示されるというもの。IE、Fx、Opera、Lunascape(Trident、Gecko)、DoCoMo/2.0はgoldとなるが、Google
Chrome、Safari、Lunascape(WebKit)はrgb(255,215,0)となる。orangeが表示されるので、CSS2.1に定義されている17色のカラーネームはそのまま表示されるということだ。
http://neconote.jp/test/this.html