0
Im建立一個HTML5文件上傳,我想讓用戶在窗口上拖動文件時觸發dragenter。這個想法是,dragenter會觸發一個lightbox樣式覆蓋,顯示拖放區域。防止拖動本地代碼/項目觸發dragenter
這是我的代碼。 (jQuery的)
$(window).bind('dragenter', function (e) {
e.stopPropagation();
e.preventDefault();
$('#uploadWrapper').show();
}).bind('dragexit', function (e) {
e.stopPropagation();
e.preventDefault();
$('#uploadWrapper').hide();
});
這工作得很好,但如果用戶抓取的圖像或一些文本並拖動它,它也trigers,DragEnter事件。有沒有一種方法可以告訴正在拖動的內容,只有實際的文件才能上傳觸發器顯示覆蓋圖?
謝謝..
不幸的是,似乎e.dataTransfer在dragenter事件中未定義。 '的jQuery(窗口).bind( '的dragenter',函數(E){ \t的console.log(e.dataTransfer);} )' – Alex
啊,這是jQuery的導致了問題......你需要通過event.originalEvent.dataTransfer訪問它,我認爲:[Event Object - jQuery API](http://api.jquery.com/category/events/event-object/)。向下滾動到「其他屬性」部分。 – ceprovence
YA!就是這樣!現在感覺很愚蠢,因爲我應該已經發現了!你的代碼中的小錯字應該是'for(in ... in) – Alex