3

HTMLでドラッグアンドドロップしてみました。IE9を除くすべてのブラウザで正常に動作しています(IE9より下位で動作する必要はありません)。オンドロップイベントはIE9ではトリガーされません。

何か助けはありますか?これが私のコードです。

jsFiddle

前もって感謝します。

4

1 に答える 1

6

タグに置き換えるdivと機能します。aただし、他にもいくつか変更を加える必要があります。まず、イベントaに戻って、タグがクリック可能なリンクでないことを確認します。falseonclick

<a class="div123" href="#" draggable="true"
 ondragstart="handleDragStart(event)"
 ondrop="handleDrop(event)"
 ondragover="dragoveHandler(event)"
 onclick="return false;">
    HTML5 drag and drop
</a>

次に、IE9はtext/plaininのパラメーターを受け入れず、代わりsetDataに使用Textするか、の中にデータを追加しますtry...catch。また、追加するデータが実際にテキストであることを確認する必要があります。

e.dataTransfer.setData("Text", "" + $(e.target).index());

最後に、handleDrop関数はpreventDefault/を実行する必要がreturn falseあります。そうしないと、リンク(要素`)をドロップするためのデフォルトのアクションは、ドロップaされたURLに移動することです。

function handleDrop(e) {
    alert($(e.target).index());
    if (e.preventDefault) {
        e.preventDefault(); // Necessary. Stops redirect.
    }
    return false;
}

これがIE9で動作するコードのjsFiddleです

于 2012-08-21T15:02:46.660 に答える