2013-09-26 36 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; };} 
}); 

拖动对话框,它激活默认拖动行为。最好的办法就是将它设置为禁用停止...我让你这样做。