Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向左拖动,然后向右拖动_Javascript_Jquery - Fatal编程技术网

Javascript 向左拖动,然后向右拖动

Javascript 向左拖动,然后向右拖动,javascript,jquery,Javascript,Jquery,当我把一个文件拖到我的窗口时,我希望显示一个覆盖,当文件被拖离窗口时,我希望删除覆盖 $(window).on('dragleave', this.onDragLeave); $(window).on('dragenter', this.onDragEnter); p.onDragEnter = function(e) { console.log('ENTER'); }; p.onDragLeave = function(e) { console.log('LE

当我把一个文件拖到我的窗口时,我希望显示一个覆盖,当文件被拖离窗口时,我希望删除覆盖

$(window).on('dragleave', this.onDragLeave);

$(window).on('dragenter', this.onDragEnter);

p.onDragEnter = function(e) {

    console.log('ENTER');
};


p.onDragLeave = function(e) {
        console.log('LEAVE');
};
上面的工作很好,当我进入和离开窗口时,它会正确记录

当我开始淡入淡出覆盖层时,问题开始出现:

p.onDragEnter = function(e) {

    console.log('ENTER');
    $('#drag-overlay').fadeIn();
};


p.onDragLeave = function(e) {
        console.log('LEAVE');
        $('#drag-overlay').fadeOut();
};
有了以上这些,它只是一次又一次地淡入淡出。我不知道发生了什么,就好像当覆盖层消失时,它会发射一个拖离,我不知道为什么


覆盖只是一个绝对div,宽度和高度为100%。

问题在于,通过显示覆盖,您会导致被拖动的项目离开父项并拖动到覆盖中。然后隐藏覆盖会导致在父对象中触发拖动

幸运的是,解决方案很简单,可以在css中完成:

#drag-overlay
{
    pointer-events: none;
    ...
}
有关有效解决方案,请参见


如果删除
指针事件:无
,则会得到相同的行为<代码>指针事件:无仅表示在覆盖上拖动时不会触发父ondragleave方法

请发一封信。您会更快地得到答案。谢谢,onDragEnter是我的方法名称,因此无需担心。“这很有效,谢谢。”潘思罗-太好了,很乐意帮忙