39

イベントをさまざまな要素にバインドしました。Firefox を除くすべてのブラウザーでイベントをドラッグすると、期待どおりに動作します。ただし、firefox ではまったく機能しません。発生する唯一のイベントはdragstartであり、他のイベントは発生しません。どうしたの?

4

5 に答える 5

34

私はjQueryを使用していないので、そのoriginalEvent部分を削除してフォーマットをテキストに変更しました(またはIEに問題がありました)。

event.dataTransfer.setData('text', 'anything');  

ドロップ イベントでは、必ず以下を呼び出してください。

event.preventDefault();

または、anything.com にジャンプします。

于 2015-09-15T18:03:31.800 に答える
34

Firefox では、ユーザーがdataTransfer.setDataイベントで関数を実行する必要があります。

ユーザーにとってjQueryは、次のコードで問題が解決されるはずです。

function dragstartHandler(event){

  event.originalEvent.dataTransfer.setData('text/plain', 'anything');

}

同じドラッグでの将来のイベントが、期待どおりに適切に発生するようになりました。明らかに、setData引数をより有用なデータに置き換えることができます。

于 2013-09-27T16:05:48.103 に答える
2

これは、Firefox で発生するリダイレクトに関するこの質問の解決策の参考として使用できます。

この問題を解決するには、drop メソッドのデフォルト アクションを防止する必要があります。

function drop(e) {
    if(e.preventDefault) { e.preventDefault(); }
    if(e.stopPropagation) { e.stopPropagation(); }

    //your code here

    return false;
}

私はこのリンクからこの解決策を得ました。

于 2016-10-22T07:02:33.947 に答える