JQuery UI sortables / draggable clone无法正常工作

时间:2010-12-01 08:59:53

标签: jquery jquery-ui sortables

大家好,我正在使用UI进行一些拖放,问题是我无法启动“克隆”。

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

中创建的“空”<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();

建议请 - 谢谢

1 个答案:

答案 0 :(得分: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();