ファイルのドラッグ/ドロップ ハンドラーを作成しようとしています (ファイルをブラウザー ウィンドウにドラッグして、アップロードに使用します)。
何らかの理由で、ドラッグ/ドロップ リスナーを本体で$("body")はなくにバインドする$("div")と、イベントが連続して数回発生し、場合によってはノンストップ (一見ループ) になることもあります。何が原因でしょうか?
コードの縮小版を次に示します: http://jsfiddle.net/WxMwK/9/
var over = false;
$("body")
    .on("dragover", function(e){
        e.preventDefault();
        if (! over) {
            over = true;
            $("ul").append($("<li/>").text("dragover"));    
        }
    })
    .on("dragleave", function(e){
        e.preventDefault();
        if (over) {
            over = false;
            $("ul").append($("<li/>").text("dragleave"));
        }
    })
    .on("drop", function(e){
        e.preventDefault();
        if (over) {
            over = false;
            $("ul").append($("<li/>").text("drop"));
        }
    }); 
テストするには: ファイルをオレンジ色の領域にドラッグすると、イベントが連続して複数回発生することがわかります。