2013-09-26 37 views
0

我有一個帶有縮放/平移地圖插件的頁面,縮放/平移工作得很好。我的問題是對話框不再可拖動。我已縮小範圍以評論此線路:暫時從縮放/平移地圖中取消拖拽/鼠標滾輪?

$('#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'}); 

並且對話框將再次移動。我相信它與地圖使用可拖動的事實有關,並且我想知道是否有某種方法可以在對話框打開時從地圖上解除可拖動的功能,並在對話框關閉時恢復它。我不想摧毀地圖,因爲用戶可能需要回到他們正在做的事情上。我在這裏有一個工作演示http://jsfiddle.net/h4c6a/,請原諒我必須複製/粘貼整個插件,否則我無法工作。這是我使用的縮放/平移插頭http://www.jqueryscript.net/zoom/Smart-jQuery-Pan-Zoom-Plugin-Smart-jQuery-Zoom.html在此先感謝。

+0

在你的小提琴中有8個錯誤。打開調試器來查看它們。 (chrome中的Ctrl + maj + i,IE中的F12,FF)。編輯:不,事實上,一旦JQueryUI被激活(需要拖動),你就有17個錯誤 – TCHdvlp

+0

而且,正如你所看到的,它適用於JQuery和JQuery UI匹配版本。而且,由於您已將全部smartzoom代碼粘貼在小提琴中,因此我已刪除了外部鏈接。 http://jsfiddle.net/TCHdevlp/h4c6a/2/。呃...我的壞,變焦被打破。 – TCHdvlp

+0

這個小提琴沒有效仿我的解決方案。這徹底打破了地圖功能。理論上,我想操縱實際腳本以外的更改,如果可能的話,不必更改js。在打開對話框之前,我需要平移/縮放功能才能在地圖上工作,然後切換到移動對話框並關閉地圖。我注意到對話框標題上的關閉圖標也隨着您的更改而關閉。 http://jsfiddle.net/h4c6a/10/ – triplethreat77

回答

0

展望smartZoom的代碼...

function mouseDownHandler(e){ 
    e.preventDefault(); // prevent default browser drag 
    ... ... ... 
    smartData.moveCurrentPosition = new Point(e.pageX, e.pageY); 
    smartData.moveLastPosition = new Point(e.pageX, e.pageY); 
} 

所以,這是與修正:http://jsfiddle.net/TCHdevlp/h4c6a/24/

$("#dialog").dialog({ 
    dragStart:function(event, ui) {document.ondragstart = function() { return true; };} 
}); 

拖動對話框,它激活默認拖動行爲。最好的辦法就是將它設置爲禁用停止...我讓你這樣做。