onclick在启用切换的div上触发拖动事件

时间:2013-12-19 05:40:38

标签: javascript css html dojo

我有一个可拖动的div。用于拖动/切换它的“拆分器”,它应该允许仅在双击时扩展和折叠。 (或者简单地拖动和展开)。

功能正常,但一旦div处于折叠状态,重新定位/打开最多10px宽度,只需在分割器上“点击”即可。即,单击/ mousedown。

我已经尝试了 stopEvent return false,以及修复它的所有其他可能性,但它不会因单击而无法停止

这不应该发生。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

为了解决这个问题,我认为如果对象移动或不移动,我需要在包含标志的DOM节点中添加一些额外的状态。如果它真的移动了,那么不应该触发click事件。

添加状态的示例:

lang.mixin(domNode, {
    moved: false
});

然后,当触发Move事件时,您将标记设置为true,例如:

moveable.on("Move", function(mv, pos, evt) {
    if (evt.target.moved === false) {
        console.log("Drag detected");
    }
    evt.target.moved = true;
});

在点击事件处理程序中,您必须验证标志是否更改为true并将其重新置于false(用于下一步操作)。例如:

on(domNode, "click", function(evt) {
    if (evt.target.moved === false) {
        // Execute your logic here
    }
});

当然,这不是最优雅的解决方案(但它有效)。最美妙的解决方案是您自己扩展Moveable并使其满足您的需求。

我用JSFiddle测试了它,你可以看到here