我有一个可拖动的div。用于拖动/切换它的“拆分器”,它应该允许仅在双击时扩展和折叠。 (或者简单地拖动和展开)。
功能正常,但一旦div处于折叠状态,重新定位/打开最多10px宽度,只需在分割器上“点击”即可。即,单击/ mousedown。
我已经尝试了 stopEvent
,return false
,以及修复它的所有其他可能性,但它不会因单击而无法停止
这不应该发生。任何帮助将不胜感激。
答案 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。