禁用文本拖放

时间:2019-03-25 16:34:38

标签: javascript jquery drag-and-drop

我正在开发图像文件的拖放系统,我注意到事件也在选定的文本拖动上执行。

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

2 个答案:

答案 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;
});