2013-01-01 2 views
7

mousewheelイベントのtargetプロパティは、マウスホイール(またはジェスチャ対応のタッチパッド)が操作されているときにマウスが現在ホバリングしているDOM要素を提供します。mousewheelイベントのターゲットプロパティが、他の(クリック、マウスダウン、タッチスタート)イベントのターゲットプロパティと異なるのはなぜですか?

これを行うと(少なくともSafari 6では、後で他のブラウザをテストします)、テキストノード自体はtargetとなります。

これは、テキストの上で直接アクションを実行しても、常に非テキストノードを生成する他のイベントでは起こりません。

言うまでもなく、それ以外のコードは複雑になります。

これには理由がありますか?私は親ノードを確認する必要はありませんが、こんにちはこの状況についての良い点は、ノードの親targetを確認する必要があることだけです。

これは機能かバグかを判断できません。それはバグですので、ここで

+0

は、ここで私は、このHTTPをテストするために使用jsfiddleだ... Chromeのみ/ Safariで発生するようです:// jsfiddle興味深いことに、divのパディング(またはテキストなしのどこか)にマウスホイールを置くと、その要素がターゲットとして返されます。 'event.target'の代わりに' this'キーワードを使用できますか? ? – lostsource

+1

これは "Safariのバグ"のためにjQueryによって正規化されています。 – pimvdb

+0

@pimvdbあなたが答えとしてそれを受け入れることを示すソースを掘り下げた場合。 –

答えて

5

は、彼らがこの動作を正常化するjQueryのコードのa snippetです:

// Target should not be a text node (#504, Safari) 
if (event.target.nodeType === 3) { 
    event.target = event.target.parentNode; 
} 
関連する問題