1


スクリプトが実行される順序がわかりません

jQuery ドラッグ アンド ドロップ プラグインに次のコードがあります。

    //...
    drop : function( event ) {
        event.stopPropagation();
        event.cancelBubble = true;
        event.preventDefault();

        $(this).removeClass("dropboxHover");

        methods.processFiles(event.dataTransfer.files);
    },
    //...


私が理解していないのは、スクリプトが最初にファイルリストを処理し(かなり時間がかかる)、他のすべてが完了した後にクラスを削除する理由です。
逆であってはいけませんか?
そのため、マウスを離してから視覚効果が現れるまで数秒かかります。これは、ブラウザがフリーズしたか何かを示唆しています。

ヘルプやコードは大歓迎です!

4

1 に答える 1

2

setTimeout 0 内で processFiles をラップしてみてください:

//...
drop : function( event ) {
    event.stopPropagation();
    event.cancelBubble = true;
    event.preventDefault();

    $(this).removeClass("dropboxHover");

    setTimeout(function(){methods.processFiles(event.dataTransfer.files);}, 0);
},
//...
于 2013-03-28T12:26:34.620 に答える