使用帮助器:带有sortable()和draggable()的'original'似乎不起作用

时间:2011-09-08 08:33:18

标签: javascript jquery html jquery-ui

我有一个简单的HTML页面,我希望能够将编号为6-10的div拖到可排序列表中,该列表已经包含编号为1-5的div。当我将可拖动的帮助器值设置为'clone'时,此页面可以很好地工作。但是,我想使用'原创'助手。这似乎根本不起作用。

有人可以建议替代方案吗?我已经尝试将“dropTarget”设为droppable()区域,但这似乎不起作用。我想他们彼此之间存在冲突。任何建议都会非常受欢迎!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <script src="Scripts/jquery-1.5.1-vsdoc.js" type="text/javascript"></script>
  <script src="Scripts/jquery-1.5.1.js" type="text/javascript"></script>
  <script src="Scripts/jquery-ui-1.8.11.js" type="text/javascript"></script>
  <script type="text/javascript">
    $(function () {
      $("#dropTarget").sortable({ revert: true });
      $("#itemlist div").draggable({ connectToSortable: "#dropTarget", helper: 'original', revert: 'invalid' });
      $('#itemlist div, #dropTarget').disableSelection();
    });
  </script>
</head>
<body>
  <div id="dropTarget" style="width: 100px; min-height: 50px; background-color: Red;">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
    <div>Item 4</div>
    <div>Item 5</div>
  </div>
  <div id="itemlist">
    <div>Item 6</div>
    <div>Item 7</div>
    <div>Item 8</div>
    <div>Item 9</div>
    <div>Item 10</div>
  </div>
</body>
</html>

1 个答案:

答案 0 :(得分:4)

我在这里修改了你的小提琴:http://jsfiddle.net/3wCHu/5/

正如jquery文档所说,使用helper:"original"时无法连接到可排序列表。我们可以有一个解决方法。

首先,您可以将#permlist中的帮助代码作为 -
helper: function(ev, ui) { return "<div>" + $(this).text() + "</div>" }

其次,在您的#dropTarget代码中添加一个选项为 -
receive: function(ev, ui){ ui.item.remove() }
这里ui.item指的是被拖动的项目。