Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 将connectToSortable拖到iframe内的可排序DIV中_Jquery_Jquery Ui_Iframe_Jquery Ui Sortable - Fatal编程技术网

Jquery 将connectToSortable拖到iframe内的可排序DIV中

Jquery 将connectToSortable拖到iframe内的可排序DIV中,jquery,jquery-ui,iframe,jquery-ui-sortable,Jquery,Jquery Ui,Iframe,Jquery Ui Sortable,我试图将一个元素从主页拖到一个iframe中,iframe中有可排序的div 我能够使div可排序,并将draggable连接到其内部的sortable,但元素被丢弃的位置计算错误,排序错误 可能是因为iframe内的鼠标坐标与主页的位置不同仔细阅读。您将看到jQueryUI“…不支持跨窗口拖动” 也就是说,正如bug通知单中所建议的,您可以修改jQueryUI中的内部代码来完成大部分您想要的工作。我按照建议实现了它,只要iFrame中没有滚动,它就工作得很好。iFrame滚动后,所有赌注都被取

我试图将一个元素从主页拖到一个iframe中,iframe中有可排序的div

我能够使div可排序,并将draggable连接到其内部的sortable,但元素被丢弃的位置计算错误,排序错误

可能是因为iframe内的鼠标坐标与主页的位置不同

仔细阅读。您将看到jQueryUI“…不支持跨窗口拖动”
也就是说,正如bug通知单中所建议的,您可以修改jQueryUI中的内部代码来完成大部分您想要的工作。我按照建议实现了它,只要iFrame中没有滚动,它就工作得很好。iFrame滚动后,所有赌注都被取消,我怀疑这就是jQueryUI不支持此功能的原因;-)

1) 。在(未缩小的)jquery ui.js文件的第2964行附近,紧跟在读取
m[i].offset=m[i].element.offset()的行之后添加代码:

  // handle iframe scrolling
  m[i].offset.top -=  m[i].element.parents().find("html,body").scrollTop();
  m[i].offset.left -=  m[i].element.parents().find("html,body").scrollLeft();

  // iframe positioning 
  if( this.current.options.iframeOffset )
  {
    m[i].offset.top +=  this.current.options.iframeOffset.top;
    m[i].offset.left +=  this.current.options.iframeOffset.left;
  }
2) 。在对.draggable()的调用中,添加以下选项:

draggable.({
  iframeFix: true, 
  iframeOffset: $("#yourIframeID").offset()
 });
3) 。确保在iFrame加载后,从父窗口创建“可拖放”:

$("#yourIframeID").load(function () {
      $(this).contents().find('<yourDroppableItemSelector>').droppable({
                                hoverClass: "landingHover",
                                iframeFix: true,
                                drop: function (event, ui) {
                                    $(this).css("background-color", "lightsalmon");
                                }
                            });
                        });
$(“#yourIframeID”).load(函数(){
$(this.contents().find(“”).dropable({
悬停类:“着陆悬停”,
iframeFix:是的,
drop:函数(事件、用户界面){
$(this.css(“背景色”、“淡鲑鱼”);
}
});
});

hoverClass选项不是必需的,但它确实可以帮助用户在悬停时突出显示可拖放区域,这样,如果事情不太一致,它仍然可用;-),整件事都是一个骗局,所以对我来说,接近就足够了。

你找到解决办法了吗?例子?