【问题标题】:Drag and Drop and Sort DIVs in jquery在 jquery 中拖放和排序 DIV
【发布时间】:2017-07-19 07:21:30
【问题描述】:

我的 jquery 代码遇到了问题。

我需要在包含一些卡片的页面两侧有 2 个 div。我应该能够从左边的那个拖放到右边的那个。卡片必须是克隆的,这样原始卡片才会保留在原位。

此外,卡片应该可以在可放置的 div 中排序,最后我需要一个列表来说明左侧 div 中项目的顺序。

但这是我的问题:拖放工作,但我不能有 2 个相同的项目,我的排序不起作用。

这是我的代码:

$( function drag() {
  $( ".item" ).draggable({
  cursor:'move',
  helper:'clone',
  } );
  } );

$( function drop(){
  $("#droppable").droppable({
    drop:function (event, ui) {
      ui.draggable.clone().appendTo($(this)).draggable();
      }
  } );
} );

$( function sort(){
  $( '.item#droppable' ).sortable();
  $( '.item#droppable' ).disableSelection();
} );
.item{width:70px; height:100px; border-radius:10%; margin:auto; margin-top:11.5%;}
.red{background-color:red;}
.blue{background-color:blue;}
.black{background-color:black;}
.green{background-color:green;}
.yellow{background-color:yellow;}
#droppable{width:150px; height:600px; border:1px black solid; float:left;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/jquery-ui-git.js" />    
<div id="draggable">
  <div class="item red" draggable="true">
  </div>
  <div class="item blue" draggable="true">
  </div>
  <div class="item black" draggable="true">
  </div>
  <div class="item green" draggable="true">
  </div>
  <div class="item yellow" draggable="true">
  </div>
</div>
<div id="droppable">

</div>

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    这会对你有所帮助..

        function allowDrop(ev) {
            ev.preventDefault();
        }
    
        function drag(ev) {
            ev.dataTransfer.setData("text", ev.target.id);
        }
    
        function drop(ev) {
            ev.preventDefault();
            var data = ev.dataTransfer.getData("text");
    
            thisdiv = ev.target;
            $(document.getElementById(data)).insertBefore(thisdiv);
        }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <div id="draggable" ondrop="drop(event)" ondragover="allowDrop(event)">
      <div id="div_1" class="item red" draggable="true" ondragstart="drag(event)">1</div>
      <div id="div_2" class="item blue" draggable="true" ondragstart="drag(event)">2</div>
      <div id="div_3" class="item black" draggable="true" ondragstart="drag(event)">3</div>
      <div id="div_4" class="item green" draggable="true" ondragstart="drag(event)">4</div>
      <div id="div_5" class="item yellow" draggable="true" ondragstart="drag(event)">5</div>
    </div>

    【讨论】:

    • 感谢您的回答,但它仍然不能有多个相同颜色的项目并且无法排序。知道如何解决这个问题吗?
    • @Mamrez 类(颜色)没有问题,只需为每个 div 使用唯一的 id。
    • 它可以工作,但在正确的 div 中。我需要左 div 可排序
    • 使用左div的id和属性,放入右div,从左div移除,就可以了。
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多