我正在开发图像文件的拖放系统,我注意到事件也在选定的文本拖动上执行。
dragenter
我想检测到所拖动的对象不是文本,因此如果以前的$(document).on("dragenter", "#element", function(event){
event.preventDefault();
// Check if we are dragging text
if(is_text){ // <- HERE
console.log("dragging text!");
}else{
console.log("dragging file!");
}
});
不能运行,则不会运行。
更新和解决方案:
console.log
答案 0 :(得分:0)
您需要检查DataTransfer
$(document).on("dragenter", "#element", function(event){
if(event.dataTransfer.files.length > 0){ // <- HERE
console.log("dragenter");
}else {
event.preventDefault();
}
});
答案 1 :(得分:0)
这将帮助您了解:
var dragging_text = false;
$(window).on("dragstart", function(event){
dragging_text = true;
console.log("dragstart");
});
$(document).on("dragenter", "#element", function(event){
event.preventDefault();
if(dragging_text){
console.log("NO, dragging text!");
}else{
console.log("OK, dragging file!");
}
dragging_text = false;
});