繁体   English   中英

将droppable拖放到具有sortable的iframe中

[英]Dragging droppable into an iframe with sortable

尝试创建droppable放置对象以将项目放置在另一个iframe中的sortable中时。 我成功创建了两个独立的框架并将它们链接起来,得到了以下jQuery对象:

  • 发件人 -投放可投放对象的容器
  • 物品 -被拖动的物品
  • 接收器 -目标可分类容器

将项目从droppable拖放到sortable拖动功能仍然缺失,因此我需要检查和调试JSFiddle以使该功能正常工作并优化代码。 所有逻辑都在这个JS脚本中。

这里已经讨论了一些问题,但是仅凭信息我无法使其发挥作用。

的jsfiddle

// Create the iframe
$('<iframe id="editor-iframe" name="editor-iframe" src="" style="width:100%;overflow:visible;scrolling="no" seamless="seamless">').appendTo('body');
var iframe = $("#editor-iframe").contents();
iframe.bind("change", function() {
  $("#editor-iframe").css({
    height: iframe.$("body").outerHeight()
  });
});

// Parameters for sortable
var sortableParameters = {
  connectWith: '.connectedSortable',
  placeholder: {
    element: function(currentItem) {
      return '<li></li>';
    },
    update: function(container, placeholder) {
      if ($(container.element[0]).hasClass('sortable-grid')) {
        placeholder.removeClass('highlight-vertical');
        placeholder.addClass('highlight-horizontal');
      } else if ($(container.element[0]).hasClass('sortable-row')) {
        placeholder.removeClass('highlight-horizontal');
        placeholder.addClass('highlight-vertical');
      }
      return;
    }
  },
  start: function(event, ui) {
    if (typeof sender != 'undefined') {
      if (sender.hasClass('items')) {
            receiver = $(this);
      }
      return;
    }
    sender = $(this);
  },
  over: function(event, ui) {},
  stop: function(event, ui) {
    item = $(ui.item);
    receiver = $(ui.item.parent());

    //Create wrapper around cells passed into new rows
    if (item.hasClass('sortable-cell') && receiver.hasClass('sortable-grid')) {
      item.wrap("<li class='sortable-table'><ul class='sortable-row connectedSortable ui-sortable'></ul></li>").parentElement.sortable(sortableParameters);
    }
  },
  iframeFix: true
}

// Called after done loading the iframe
$("#editor-iframe").on("load", function() {

  // Initialize draggable
  $('.items li').draggable({
    start: function(event, ui) {
      sender = $(event.target.parentElement);
    },
    over: function(event, ui) {},
    stop: function(event, ui) {
      item = $(event.target);

      //Create wrapper around cells passed into new rows
      if (item.hasClass('sortable-cell') && receiver.hasClass('sortable-grid')) {
        item.wrap("<li class='sortable-table'><ul class='sortable-row connectedSortable ui-sortable'></ul></li>").parent().sortable(sortableParameters);
      }
    },
    helper: 'clone',
    iframeFix: true,
    connectToSortable: $('#editor-iframe').contents().find('.sortable-grid, .sortable-row').sortable(sortableParameters), // Initialize sortable
  });
});

// Load content for iframe
$("#editor-iframe").attr("src", "http://fiddle.jshell.net/piglin/UAcC7/1848/show/light/");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM