次のパターンを使用してHTML5ドラッグアンドドロップの実装を作成しようとしています。HTML5ドロップイベントはスコープとは異なるe.targetを持っています
このパターンを使用すると、ドロップハンドラのクラスのスコープを維持できます。これは、そのクラスの他のすべてのプロパティと関数を参照できるためです。実際に
el.addEventListener('drop', function(){
console.log(this, e.target)
}, false);
上記の例では、これとe.targetは全く異なるDOMオブジェクトのようになります。「これは」次の例では同じようしかし、それはe.targetが同じDOMオブジェクトを公開しないことが判明しますここで、 "this"はドラッグ可能なオブジェクト(tr)で、e.targetはtd要素になります。
この問題を回避するには、このクラスを構造化する賢明な方法がありますか?
あなたが望むものは不明ですが、 'e.target'はバブル伝播の対象です。 [他のイベントターゲットオプション](https://developer.mozilla.org/en/DOM/event/Comparison_of_Event_Targets)、特に 'event.currentTarget'を参照してください。 – katspaugh
こんにちは@ katspaugh、私はe.targetがバブリングの対象であることを感謝します。この場合、e.currentTargetは実際にe.targetと同じ結果を返します。私の主張は、イベントオブジェクトは、あなたが期待するドラッグ可能なターゲットを露出させることは決してないようです。 – prototype