Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 是否从缩放/平移地图暂时解除可拖动/鼠标滚轮的绑定?_Jquery_Jquery Ui_Dialog_Zooming_Draggable - Fatal编程技术网

Jquery 是否从缩放/平移地图暂时解除可拖动/鼠标滚轮的绑定?

Jquery 是否从缩放/平移地图暂时解除可拖动/鼠标滚轮的绑定?,jquery,jquery-ui,dialog,zooming,draggable,Jquery,Jquery Ui,Dialog,Zooming,Draggable,我有一个带有缩放/平移贴图插件的页面,缩放/平移效果很好。我的问题是对话框不再是可拖动的。我把范围缩小到评论这一行: $('#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'}); 对话框将再次移动。我相信这与地图正在使用可拖动功能这一事实有关,我想知道是否有某种方法可以在打开对话框时从地图中解除可拖动功能的绑定,并在关闭对话框时恢复它。我不想破坏地图,因为用户可能需要回到他们正在做的事情。我这里有一个工作演示,

我有一个带有缩放/平移贴图插件的页面,缩放/平移效果很好。我的问题是对话框不再是可拖动的。我把范围缩小到评论这一行:

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

对话框将再次移动。我相信这与地图正在使用可拖动功能这一事实有关,我想知道是否有某种方法可以在打开对话框时从地图中解除可拖动功能的绑定,并在关闭对话框时恢复它。我不想破坏地图,因为用户可能需要回到他们正在做的事情。我这里有一个工作演示,请原谅我不得不复制/粘贴整个插件。否则我无法让它工作。这是我正在使用的缩放/平移插件,提前感谢。

查看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);
}
所以,这里有一个修正:


拖动对话框,将重新激活默认的拖动行为。最好是将其设置为在拖动停止时禁用。。。我让你这么做。

你的小提琴有8处错误。打开调试器以查看它们。(chrome中的Ctrl+maj+i,IE中的F12,FF)。编辑:不,事实上,一旦激活JQueryUI(拖动所需),您就有17个错误,正如您所看到的,它与JQuery和JQueryUI匹配版本一起工作。而且,当您将所有smartzoom代码粘贴到小提琴中时,我已经删除了外部链接。呵。。。我的错,变焦坏了。这把小提琴没有模仿我的解决方案。这完全破坏了地图功能。理论上,我也希望在实际脚本之外处理更改,如果可能的话,不必更改js。我需要在打开对话框之前平移/缩放地图,然后切换到移动对话框,并在关闭时返回地图。我注意到对话框标题上的关闭图标与您的更改一起关闭。忘记十字架吧。。。只是加载了两个版本的JQueryUI,只有一个css。删除外部资源广告中的UI,您将看到十字架。无论如何,问题可能来自smartZoom。如果我停用
.dialog()
或不加载UI,缩放仍会中断。
$( "#dialog" ).dialog({
    dragStart:function( event, ui ) {document.ondragstart = function () { return true; };}
});