2

我试图阻止在 Dart 中拖动的默认光标样式。在 onDragStart 方法中,我将光标样式设置为“移动”,然后在 onDragEnd 中恢复为默认值:

onDragStart(e) {
    prevCursor = placeholder.style.cursor;      
    placeholder.style.cursor = 'move';
}

onDragEnd(e) {
    placeholder.style.cursor = prevCursor;
}

拖动时,光标仍默认为“不允许”样式。我已经尝试了很多方法来防止这种情况发生,例如在 onDragStart 方法中阻止默认为 onSelectStart,这被推荐作为 javascript 中 chromium 的修复,但在 Dart 中不起作用:

document.onSelectStart.listen( (e) {
    e.preventDefault();
    return false; 
});

我也尝试在 CSS 中设置默认值,这不是我想要实现的方式,但它仍然不起作用:

a:drag {
 cursor:move;
}

有什么建议么?

4

2 回答 2

0

嗯......只是一个猜测,但也许尝试看看您是否还需要处理 onDragEnter?

于 2013-06-03T18:15:29.153 回答
0

如果它的处理程序取消了拖入事件等,则放置目标将光标图标设置为“不允许”。
为放置区域编写处理程序是最简单的解决方案。

为了规避这个问题,可以捕获鼠标按下事件、鼠标移动事件等并用于移动元素,就像我在这里所做的那样:通过在 Dart 中拖动来移动元素

这家伙更详细地解释了相关问题:http: //mereskin.github.io/dnd/

有点无关紧要,但是对于某些浏览器,在拖动元素时仅使用默认光标图标可用,并且无法更改该默认值。

于 2016-02-01T15:16:09.230 回答