2013-12-19 30 views
0

我有一个可拖动的div。用于拖动/切换它的“分割器”,它应该只允许在双击时进行扩展和折叠。 (或简单的拖动和展开)。onclick在切换启用时触发拖动事件div

该功能可以正常工作,但是一旦div处于折叠状态,只需在分离器上单击'',它就会重新定位/打开至约10px宽度。即,单击/ mousedown。

我已经试过stopEventreturn false,还修复它的所有其他可能性,但它不会扩大对单一的点击

这是不应该发生的停止。任何帮助,将不胜感激。

+0

你可以用你的代码添加一个jsFiddle吗? –

回答

1

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

增加状态的一个例子:

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; 
}); 

Click事件处理程序中将不得不验证该标志是否更改为true,并将其返回false(用于下一步)。例如:

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

当然,这还不是最完美的解决方案(但它的工作原理)。最美丽的解决方案是你自己扩展Moveable,并使其满足你的需求。

我用一个JSFiddle对其进行了测试,您可以看到它,其中包括here

+0

嗨Dimitri,非常感谢您的及时回复,分析和努力。问题是,即使在“拖动”/“移动”事件被触发之前,异常情况也会发生。在做了一些试验和错误之后,我只是将内容窗格的最小宽度设置为_移动到的大小,以便在折叠或最小化时不会达到0px。相反,它最小化为10px。即,10px是窗格的最小宽度。 – Malathi

+0

我没有这些问题与我的例子,所以你将需要发布一些(故障)的代码,所以我们可以尝试解决这个问题。 – g00glen00b