0

我有一个带有附加可移动元素的 div。在 div 内有一个按钮列表,带有一个滚动条。当我尝试拖动滚动条时,它只是将整个 div 拖动到我的屏幕上。在此代码片段中,我试图在单击滚动条(这是metL的一部分)时关闭可移动设备。在此处输入图像描述

我有“metId”,它在 div 中的其他任何地方都可以恢复拖动 div。

暂停和恢复不起作用。

解决问题的任何帮助都会有所帮助,谢谢。

4

1 回答 1

-1

如果没有看到包含所有相关元素结构的 html 标记,就很难回答这个问题。甚至可能有更好的方法来完成您想要完成的事情。不过,我要指出一个可能的问题:

当 dojo 在拖动句柄上注册 、 或 事件时,拖放dragstart动作mousedown开始selectstart。在您的情况下,拖动手柄是 id 的 div "divMenu"+threadId。所有这些事件都是在事件发生之前触发的click,因此暂停moveBlocker没有效果。

另外我认为,你的 moveBlocker 事件不应该是一个空函数。相反,它应该主动“阻止”相关事件被传播到拖动句柄:

var moveBlocker = on.pausable(dnd.handle, "mousedown,dragstart,selectstart", function(e) {
    e.stopPropagation();
    e.preventDefault();
});

根据您尝试完成的行为,其他事件处理程序也应该在“mousedown”事件上注册。

于 2013-08-11T10:04:08.237 回答