2011-07-06 14 views
1

ondragleaveのための解決策はありますか?Javascript Drag&Drop:解決策を提供しますか?

.addEventListener('ondragleave',function(){ 
console.log('nothing'); 
}); 

これは機能しません。私は何か間違っている?それはあなたが使用しているブラウザによって異なります。

おかげで)

答えて

1

.addEventListener ("dragend",function(){ 
    console.log('nothing'); 
}); 

EDITしてみてください。情報はhttp://help.dottoro.com/ljsluknm.phpから取得しました。ブラウザーごとに異なるイベント名が使用されます。

var source = document.getElementById ("source"); 
var target = document.getElementById ("target"); 
      if (source.addEventListener) { // all browsers except IE before version 9 
        // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer 
       source.addEventListener ("dragstart", DumpInfo, false); 
        // Firefox before version 3.5 
       source.addEventListener ("draggesture", DumpInfo, false); 
        // Firefox, Google Chrome, Safari, Internet Exlorer 
       source.addEventListener ("drag", DumpInfo, false); 
        // Firefox, Google Chrome, Safari, Internet Exlorer 
       source.addEventListener ("dragend", DumpInfo, false); 

        // Firefox, Google Chrome, Safari, Internet Exlorer 
       target.addEventListener ("dragenter", DumpInfo, false); 
        // Firefox, Google Chrome, Safari, Internet Exlorer 
       target.addEventListener ("dragover", DumpInfo, false); 
        // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer 
       target.addEventListener ("dragleave", DumpInfo, false); 
        // Firefox 
       target.addEventListener ("dragexit", DumpInfo, false); 
        // Firefox from version 3.5, Google Chrome, Safari, Internet Exlorer 
       target.addEventListener ("drop", DumpInfo, false); 
        // Firefox before version 3.5 
       target.addEventListener ("dragdrop", DumpInfo, false); 
      } 
      else { 
       if (source.attachEvent) { // IE before version 9 
        source.attachEvent ("ondragstart", DumpInfo); 
        source.attachEvent ("ondrag", DumpInfo); 
        source.attachEvent ("ondragend", DumpInfo); 

        target.attachEvent ("ondragenter", DumpInfo); 
        target.attachEvent ("ondragover", DumpInfo); 
        target.attachEvent ("ondragleave", DumpInfo); 
        target.attachEvent ("ondrop", DumpInfo); 
       } 
      } 
+1

ああ私の神様、なぜ標準はありませんか... – Somebody

+0

私はそれについて教えてくれます。それはばかげている – brenjt

1

前の回答はondragleave、間違っているとondragend二つの異なるイベントがあり、それらが異なる要素に発射されています。 Mozillaでondragleaveが呼び出されたondragexitイベントを試すことが何を意味するのでしょうか< 3.5。

ドロップイベントを受け取ることができる要素からドラッグが外に出たときに、ondragleaveが発生します。

ondragstartが起動した要素でondragendが起動されます。

例えば:あなたのondragleaveのために発射しませhttps://developer.mozilla.org/en-US/docs/DragDrop/Drag_Operations

理由は、おそらく、たとえば、私が読んだのドキュメントで

.addEventListener('dragleave',function(){ 

でなければなりません

.addEventListener('ondragleave',function(){ 

かもしれませんhttp://www.quirksmode.org/js/events_advanced.htmlに.addEventListener()を使用している場合、イベントは "on"なしで指定されます。

PS。 さらに、Mozilla 22は、ドロップ可能な要素の上にタイムアウトした後にondragleaveイベントを発生させるように見えます。 DS。

関連する問題