- 2008-08-14 (木)
- 技術
例えば以下のようにセットすることは多々あると思うのですが、
注意したいのは「this.id」としている部分。
ここのthisはもちろん"hoge"オブジェクトになっててほしいところなんですが、IEではwindowオブジェクトになってしまいます。
以下のサンプルではalert(this.id)でhogeが表示されてほしいところですが、windowIdが表示されます。
が~~ん!
これはPrototype.jsの中でattachEventを使ってイベントを登録しているのが原因かな~なんて思っています。
まぁIEでイベント登録するときはattachEvent使うしかないのですが・・・
ためしにEvent.observeの部分を自分で書いてみたのですが、やっぱりattachEventの部分が「windowId」になる。
さらっと使っていますが、「Event.element(e).id」を使って自分自身のオブジェクトを取得できるようです。
一応これで解決かと思いきや、まだダメなパターンがありそうです。
クリックされたエレメントの上位エレメントにイベントが登録されている場合
クリックされるアンカータグのひとつ上のエレメントにIDがふられて、そのエレメントにイベントが登録されているパターン。
この場合だとまずIEでthis.idはwindowオブジェクトだし、Event.element(e).idで取れてくるのはアンカータグのIDだし・・・
んもうっ。
結局のところ
なんか嫌だけど、こうなの?w
すんごい初歩的なところで悩んでいますが、jQuery使っているとこのあたりが非常にもどかしい。
というかもっといい方法がありそうだw
【関連する記事】
Comments:0
Trackback:0
- TrackBack URL for this entry
- http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1093
- Listed below are links to weblogs that reference
- Event.observeでセットするfunction内のthisについて from HouseTect, JavaScripter Blog

