Dojo可以使用Dojo pausable移动

时间:2013-08-07 21:08:50

标签: javascript dojo drag-and-drop scrollbar

我有一个附有可移动元素的div。 div内有一个按钮列表,附有一个滚动条。当我尝试拖动滚动条时,只需将整个div拖动到屏幕上即可。在这个代码片段中,当我点击滚动条(这是metL的一部分)时,我试图让关闭的可移动。enter image description here

我有“metId”,它在div设置的其他地方继续拖动div。

暂停和恢复不起作用。

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

1 个答案:

答案 0 :(得分:-1)

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

当dojo在拖动句柄上注册dragstartmousedownselectstart事件时,拖放操作就会启动。在您的情况下,拖动句柄是ID为"divMenu"+threadId的div。所有这些事件都会在click事件发生前触发,因此暂停moveBlocker无效。

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

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

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