javascript - jQuery 可排序自己的元素作为占位符

标签 javascript jquery html css

我正在实现一个连接列表,如看板。一切正常,但占位符仍然丢失。我现在正在寻找一种方法来添加自己的元素作为占位符,就像他们在 Gitlab 中所做的那样:

enter image description here

我该怎么做?我知道有一个占位符变量,但我不确定如何使用相同的元素作为占位符。这是我的代码:

jQuery( document ).ready( function ( $ ) {
  $( "#sortable1, #sortable2" ).sortable({
      connectWith: ".connectedSortable"
    }).disableSelection();
});
#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;
  }
<!doctype html>
<html lang="en">
<head>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <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>
</head>
<body>
 
<ul id="sortable1" class="connectedSortable">
  <li class="ui-state-default">Item 1</li>
  <li class="ui-state-default">Item 2</li>
  <li class="ui-state-default">Item 3</li>
  <li class="ui-state-default">Item 4</li>
  <li class="ui-state-default">Item 5</li>
</ul>
 
<ul id="sortable2" class="connectedSortable">
  <li class="ui-state-highlight">Item 1</li>
  <li class="ui-state-highlight">Item 2</li>
  <li class="ui-state-highlight">Item 3</li>
  <li class="ui-state-highlight">Item 4</li>
  <li class="ui-state-highlight">Item 5</li>
</ul>
 
 
</body>
</html>

最佳答案

这样的事情对你有帮助吗?

jQuery(document).ready(function($) {
  $("#sortable1, #sortable2").sortable({
    connectWith: ".connectedSortable",
    start: function(event, ui) {
      var clone = $(ui.item[0].outerHTML).clone();
    },
    placeholder: {
      element: function(clone, ui) {
        return $('<li class="fade">' + clone[0].innerHTML + '</li>');
      },
      update: function() {
        return;
      }
    },
  }).disableSelection();

});
#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;
}

.fade {
  opacity: 0.5;
}
<!doctype html>
<html lang="en">

<head>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <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>
</head>

<body>

  <ul id="sortable1" class="connectedSortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
  </ul>

  <ul id="sortable2" class="connectedSortable">
    <li class="ui-state-highlight">Item 1</li>
    <li class="ui-state-highlight">Item 2</li>
    <li class="ui-state-highlight">Item 3</li>
    <li class="ui-state-highlight">Item 4</li>
    <li class="ui-state-highlight">Item 5</li>
  </ul>


</body>

</html>

关于javascript - jQuery 可排序自己的元素作为占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58098577/

相关文章:

javascript - 我尝试向 <a> 添加 Bootstrap 下拉按钮,但下拉菜单不起作用。我该怎么做呢?

html - CSS Margin 仅适用于 chrome

javascript - 使用javascript将路径解析为嵌套的html列表

javascript - extendscript:获取项目的文件路径

javascript - jqGrid : open a customised form on click of 'Edit' button and after edit refresh that row

javascript - 阻止 js 函数在初始页面加载时加载

javascript - 刷新后保存当前事件选项卡

javascript 函数调用不工作

javascript - jQuery 在动画期间使用 if-else

javascript - 如何使用 jquery 和 selenium 在 `shadow-root` 处访问 'chrome://downloads' 下的元素?