Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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
Javascript 如何使用拖放JQuery仅移动特定项?_Javascript_Jquery_Jquery Ui_Jquery Ui Draggable_Jquery Ui Droppable - Fatal编程技术网

Javascript 如何使用拖放JQuery仅移动特定项?

Javascript 如何使用拖放JQuery仅移动特定项?,javascript,jquery,jquery-ui,jquery-ui-draggable,jquery-ui-droppable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,Jquery Ui Droppable,我不想将所有项目移动到div。我只想将特定项目从一个div移动到另一个div <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery UI Sortable - Connect l

我不想将所有项目移动到div。我只想将特定项目从一个div移动到另一个div

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Sortable - Connect lists</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>
  #sortable1, #sortable2 {
    border: 1px solid #eee;
    width: 142px;
    min-height: 20px;
    list-style-type: none;
    margin: 0;
    padding: 5px 0 0 0;
    float: left;
    margin-right: 10px;
  }
  #sortable1 li, #sortable2 li {
    margin: 0 5px 5px 5px;
    padding: 5px;
    font-size: 1.2em;
    width: 120px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#sortable1, #sortable2" ).sortable({
      connectWith: ".connectedSortable"
    }).disableSelection();
  } );
  </script>
</head>
<body>

<ul id="sortable1" class="connectedSortable">
  <li class="ui-state-default">StoreID</li>    // I want to move only this STOREID li element to another UL
  <li class="ui-state-default">ItemLookupCode</li>
  <li class="ui-state-default">ExtendedCost</li>
  <li class="ui-state-default">Quantity</li>
  <li class="ui-state-default">Price</li>
</ul>

<ul id="sortable2" class="connectedSortable">

</ul>


</body>
</html>

jQuery UI可排序-连接列表
#排序1,#排序2{
边框:1px实心#eee;
宽度:142px;
最小高度:20px;
列表样式类型:无;
保证金:0;
填充:5px0;
浮动:左;
右边距:10px;
}
#可排序1 li,#可排序2 li{
保证金:0 5px 5px 5px;
填充物:5px;
字体大小:1.2米;
宽度:120px;
}
$(函数(){
$(“#可排序1,#可排序2”)。可排序({
connectWith:“.connectedSortable”
}).disableSelection();
} );
  • StoreID
  • //我只想将这个StoreID li元素移动到另一个UL
  • ItemLookupCode
  • 扩展成本 数量 价格
我只想将ULStoreID的第一个元素移动到另一个UL或所有元素。如何实现它


谢谢

这最好使用
update
receive
回调来完成。键是:
ui.sender.sortable(“取消”)这将还原更改

工作示例:

HTML

<ul id="sortable1" class="connectedSortable">
  <li class="ui-state-default acceptable">StoreID</li>
  <li class="ui-state-default">ItemLookupCode</li>
  <li class="ui-state-default">ExtendedCost</li>
  <li class="ui-state-default">Quantity</li>
  <li class="ui-state-default">Price</li>
</ul>

<ul id="sortable2" class="connectedSortable">
</ul>
JavaScript

$(function() {
  $(".connectedSortable").sortable({
    connectWith: ".connectedSortable",
    update: function(e, ui) {
      if ($(e.target).attr("id") == "sortable2") {
        if (ui.item.hasClass("acceptable")) {
          console.log($(this).attr("id") + " accepted item: ", ui.item);
        } else {
          console.log($(this).attr("id") + " rejected item: ", ui.item);
          ui.sender.sortable("cancel");
        }
      }
    }
  }).disableSelection();
});

如果你想让它看起来更像可拖动的,你可以设置动画。

你的意思是,只有storeId会被移动到另一个ul,而不是其他ul,对吗?@rahul\m是的。我有另一个
#sortable3
id,在那里它只允许从
#sortable1
中删除
扩展的成本、数量、价格
。@mohamedhafil你的请求有点奇怪。如果只想拖动一项,为什么要使列表1可排序?或者您的意思是列表1和2都应该是可排序的,但只有
StoreID
可以移到列表2?如何按此顺序保存和从DB检索?@vignesh.D查看并将列表转换为可以通过脚本发送到DB的数据。然后,您将需要另一个脚本来收集数据,并且可以像API一样访问。
$(function() {
  $(".connectedSortable").sortable({
    connectWith: ".connectedSortable",
    update: function(e, ui) {
      if ($(e.target).attr("id") == "sortable2") {
        if (ui.item.hasClass("acceptable")) {
          console.log($(this).attr("id") + " accepted item: ", ui.item);
        } else {
          console.log($(this).attr("id") + " rejected item: ", ui.item);
          ui.sender.sortable("cancel");
        }
      }
    }
  }).disableSelection();
});