2013-12-19 66 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