繁体   English   中英

Javascript拖放-allowdrop的延迟

[英]Javascript drag and drop - delay for allowdrop

我目前陷入以下问题:

我需要在发生拖移时创建一个延迟,然后检查当前的拖移对象是否仍然相同。 当它是同一个对象时->执行代码。

这是我的代码:

var draggedId = null;
var triggered = false;

function allowDrop(ev) {

draggedId = ev.target.id;

setTimeout(function () {

    if (draggedId == ev.target.id && ev.target.id != "" && !triggered) {
        triggered = true;
        draggedId = "";
        ev.preventDefault();
    }

}, 2000);

}

function drop(ev) {
ev.preventDefault();
}

function dragLeave(ev) {

draggedId == "";
triggered = false;
}

Allowdrop功能是拖动事件。 ev.preventDefault()允许删除不能在那里发生,因为该函数是异步的。 有任何想法吗?

谢谢,

马蒂亚斯

您能否解释一下您要达到的目标,而我可以更全面地回答?

通常情况下,您不能总是总说出放置是否可行,您最好的办法就是在页面上设置放置区域,并让它们根据您对放置的了解来取消拖动事件。 如果要使应用程序与跨窗口拖动一起工作,则不能依赖全局变量来存储有关被拖动内容的信息,也不能实际看到拖动内部的内容-您只能知道是哪种东西被拖。 因此,如果下降是可以接受的,则需要取消该事件。 看到这个问题

我认为也许您对dragevent如何传播感到困惑,这是您认为需要超时的原因吗? 但是阻止事件队列来确定您是否接受拖放,或者尝试在拖动事件冒泡到顶部并由浏览器以默认方式(即不接受拖放)进行处理之后尝试取消拖动事件是'去上班。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM