何か

2012-03-03 5 views
0
1枚のパネルにあるいくつかのイメージがあります

、私は別のパネルにドラッグします:他のパネルは、このことにより、IMGを受け入れる何か

$('#resource img').bind('dragstart', function (evt) { 
     evt.dataTransfer.setData('text', this.id); 
    }); 

 $('#draw').bind('dragover', function (evt) { 
      evt.preventDefault(); 
     }).bind('dragenter', function (evt) { 
      evt.preventDefault(); 
     }).bind('drop', function (evt) { 
      evt.preventDefault(); 
      var id = evt.dataTransfer.getData('text'), 
      $(this).append("<b>Hello"+id+"</b>"); 
     }); 

しかし、これは機能しませんが、最後のイベントハンドラを変更すると、次のようになります。

.bind('drop', function (evt) { 
       evt.preventDefault(); 
        alert("!!!"); 
      }); 

これはどうして起こるのでしょう、どうすればよいですか?この問題はどうですか?

答えて

1

jQueryを使用しているようです。あなたはイベントでdataTransferプロパティをプッシュするようjQueryに指示しましたか? jQueryは自動的にイベントでdataTransferオブジェクトをプッシュしません。おそらくいつか変わるかもしれませんが、現在この回避策を使用しなければなりません。

$(document).ready(function() {  
    $.event.props.push('dataTransfer'); 
} 
1

すなわち、私は手遅れになると確信していますが、元のイベントのプロパティにアクセスすることができます。:

evt.originalEvent.dataTransfer.setData('text', this.id);