私は完全な形でドラッグアンドドロップで遊んでいたので(インスタントアップロードはありません)。私は小さな部分がファイルで覆われたときに特定のフィールドセットを強調表示するつもりだったが。 dragover
とdragenter
のイベント(およびdragleave
など)を入力します。dragenter/dragoverイベントにEvent.fromElementはありませんか?
このような小さな部分ではないことが分かります。フィドル:http://jsfiddle.net/rudiedirkx/epp74/
試してみてください:フィールドセットの上をドラッグして少し移動してください。最初のover
は、フィールドセットのdragenter
イベントをトリガーします(フィールドセットは黄色です)。それ以降(同じフィールドセット内で)移動すると、dragenter
とdragleave
(フィールドセットは黄色になりません)が悪くなります。 mouseenter
とmouseleave
(彼らは一度だけトリガー):私はIEは長い時間前mouseover
とmouseout
のために作られたものを作りたかった理由です
。ドラッグイベントの場合、まったく同じことが適用されます。まったく同じ方法で1回だけトリガーする必要があります。 JSライブラリは、Event.fromElement
とEvent.toElement
を使用してこれらのIEイベントを偽装し(イベント所有者要素と比較します) (詳細についてjQueryまたはMootoolsソースを参照してください。)
をドラッグイベントのために同じことを行うために、私は同じfromElement
とtoElement
を必要としています。あなたはフィドルで見ることができます、私は試してみますが、私はそれらを見つけることができません。
誰でも知っていますか?なぜ彼らは利用できないのですか?
私はdragenter
イベントでfromElement
を持っていない、主にChromeを使っていますが、はdragleave
イベントでtoElement
を持っています。 Firefoxでは少し悪いですが(論理的です)、どちらも空です。
すべてのアイデアは大歓迎です。私はChromeのtoElement
dragleave
では必ずしも正しくないことが判明しましたa little more debugging後
編集
。 this
より大きいことはありませんが、フィールドセット(this
)を親フォーム(toElement
)のままにしておく必要があります。私がそうすると、this
とtoElement
の両方がフィールドセットになります(間違っていますか?)。
編集ソリューション:イベント内の要素を無視し、イベントは、マウスの下の要素を見つけるために、座標使用http://jsfiddle.net/rudiedirkx/Lwd3md71/:
私はこのようなものになってしまいました。アニメーションフレームごとに最大1回トリガーするには、31〜59 fpsになるrequestAnimationframeを使用します。
質問をスキミングしましたが、イベントのsrcElementプロパティを探していますか? – aaaidan
私は正しいtoElementを探しています。フィールドセットを離れるドラッグを検出するには、toElementがフィールドセットの外にあるようにする必要があります( '
ああ、そうです。そんなカモメになってしまって申し訳ありません! – aaaidan