0

嗨,人们正在使用 UI 来进行拖放,问题是我无法启动“克隆”。

我有 2 个<ul><li></li></ul>列表,我想从列表 1 拖动到列表 2 好的,这很容易,但是让“克隆”保留在列表 1 中却不是。我需要/想要发生的是从列表 1 拖动到列表 2(仅单向拖动),然后在列表 2 中接收隐藏删除拖动的项目 - 好的听起来很奇怪,但拖动项目的 ID 加载基于该的页面ID 进入<li>第 2 次创建的“空”<ul>

到目前为止,“我们”看起来像这样:

 $('ul#inputs_menu li ul').sortable({

connectWith: "ul#layout_form",

}).disableSelection();

$('ul#inputs_menu li ul li').sortable({

helper: "clone"

}).disableSelection();


$(' ul#layout_form' ).sortable({

receive: function(event, ui) {

var new_item = (ui.item).attr('id');

$('ul#layout_form').append('<li><div id="'+new_item.substr(4)+'"class="'+new_item.substr(4)+' inputs radius_10" ></div></li>');

$('#'+new_item.substr(4)).load('includes/text.php?fld_name='+new_item.substr(4));

}

}).disableSelection();

请提出建议-谢谢

4

1 回答 1

1

而不是ui.item原始的,你想要ui.helper的是克隆。此外,您可以通过使用来减少整体代码和选择器的工作.appendTo(),如下所示:

$('#inputs_menu li ul').sortable({
  connectWith: "ul#layout_form",
}).disableSelection();
$('#inputs_menu li ul li').sortable({
  helper: "clone"
}).disableSelection();

$('#layout_form' ).sortable({
  receive: function(event, ui) {
    var new_item = ui.helper.id.substr(4);
    $('<li><div id="'+new_item+'"class="'+new_item+' inputs radius_10" ></div></li>')
      .appendTo('#layout_form')
      .find("div").load('includes/text.php?fld_name='+new_item);            
  }
}).disableSelection();
于 2010-12-01T09:01:41.050 回答