jQuery eventのoriginalEvent
HTML5関連本のドラッグ&ドロップサンプルをjQueryを使う形に置き換えて実行しようとしたとき、jQueryのbindを使うとdataTransferプロパティがイベントから取得出来ない現象が起こりました。原因は、わかってしまえば単純で、jQueryのイベントハンドラに渡されるeventオブジェクトはjQueryがブラウザ互換性の為に作成した独自オブジェクトだからでした。HTML5等で新たに追加されたプロパティにアクセスするには、大元のeventオブジェクトを取得する必要があります。
ググってみたところ、どうやらjQueryのevent.originalEventで取得できるみたいです。
試しにドラッグ&ドロップのサンプルをjQueryのbindを使う形に置き換えて、このoriginalEventを使ってみたところ、IE8、FF3.6、Chrome6、Safari5で動作させることができました。Operaを捨てていいのなら、ドラッグ&ドロップ機能もほぼ実用段階に入ったということでしょうか。
このoriginalEventプロパティ、公式サイトで全然説明が無いので、積極的に使っていいかどうかちょっと気になります。しかしこれを使わないとイベントハンドラ関連で独自にクロスブラウザ対策をしなければいけなくなる為、現時点では利用した方が便利なのは確かかも。
- 作者: 白石俊平,株式会社あゆた
- 出版社/メーカー: 日経BP社
- 発売日: 2010/02/25
- メディア: 単行本
- 購入: 15人 クリック: 635回
- この商品を含むブログ (55件) を見る