2012-03-03 81 views
0

有一個面板一些圖片,我想將它們拖動到另一個面板:蹊蹺的Html5的下降和阻力作用

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

其他面板通過此接受IMG:

 $('#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("!!!"); 
      }); 

這可能是工作,爲什麼這個happend,哪能這麼解決這個問題?

回答

1

它看起來像你使用jQuery。你是否告訴jQuery使用事件推送dataTransfer屬性? jQuery不會自動將dataTransfer對象與事件一起推送。也許有一天會改變,但目前這種解決方法必須使用。

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

我相信這是爲時已晚,但可以訪問原始事件的屬性,即:

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