我有一个带有附加可移动元素的 div。在 div 内有一个按钮列表,带有一个滚动条。当我尝试拖动滚动条时,它只是将整个 div 拖动到我的屏幕上。在此代码片段中,我试图在单击滚动条(这是metL的一部分)时关闭可移动设备。
我有“metId”,它在 div 中的其他任何地方都可以恢复拖动 div。
暂停和恢复不起作用。
解决问题的任何帮助都会有所帮助,谢谢。
我有一个带有附加可移动元素的 div。在 div 内有一个按钮列表,带有一个滚动条。当我尝试拖动滚动条时,它只是将整个 div 拖动到我的屏幕上。在此代码片段中,我试图在单击滚动条(这是metL的一部分)时关闭可移动设备。
我有“metId”,它在 div 中的其他任何地方都可以恢复拖动 div。
暂停和恢复不起作用。
解决问题的任何帮助都会有所帮助,谢谢。
如果没有看到包含所有相关元素结构的 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”事件上注册。