Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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可从一个div排序到另一个div_Javascript_Jquery_Jquery Ui_Jquery Ui Sortable - Fatal编程技术网

Javascript jQuery可从一个div排序到另一个div

Javascript jQuery可从一个div排序到另一个div,javascript,jquery,jquery-ui,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Jquery Ui Sortable,我对jQuery UI Sortable有点问题,需要一些帮助:我有以下html代码: <div class="sortable"> <div class="item"> <p>title1</p> <div class="sort">sort 1</div> </div> <div class="item"> <p>title2</p>

我对jQuery UI Sortable有点问题,需要一些帮助:我有以下html代码:

<div class="sortable">
 <div class="item">
    <p>title1</p>
    <div class="sort">sort 1</div>
 </div>
   <div class="item">
    <p>title2</p>
    <div class="sort">sort 2</div>
 </div>
   <div class="item">
    <p>title3</p>
    <div class="sort">sort 3</div>
 </div> 
</div>
如果我在可排序选项中指定仅对指定的项进行排序,则它们将被排序,但会从我想要的div结构中取出-每个都在父“.item”元素中

以下是对行为的一种摆弄:


有没有一种方法可以实现jQuery Sortable所需的功能?我所看到和尝试过的所有例子都没有这样的结果。非常感谢

想找这样的东西吗

var dropped;
var titleDrop;
var titleChange;
$(function() {
    $(".sortable").sortable({
        items: ".sort",
        stop: function( event, ui ) {
            if(titleDrop != titleChange)
                dropped.append(ui.item);
        },
        change: function(event, ui){
            titleChange = ui.placeholder.parent().find('p').text();
        }
    });
    $( ".item" ).droppable({
        accept: ".sort",
        drop: function( event, ui ) {
            dropped = $(this);
            titleDrop = $(this).find('p').text();
        }
    });
});

更新

包括交换位置:


在找这样的东西吗

var dropped;
var titleDrop;
var titleChange;
$(function() {
    $(".sortable").sortable({
        items: ".sort",
        stop: function( event, ui ) {
            if(titleDrop != titleChange)
                dropped.append(ui.item);
        },
        change: function(event, ui){
            titleChange = ui.placeholder.parent().find('p').text();
        }
    });
    $( ".item" ).droppable({
        accept: ".sort",
        drop: function( event, ui ) {
            dropped = $(this);
            titleDrop = $(this).find('p').text();
        }
    });
});

更新

包括交换位置:


所以,当我将排序3拖动到标题1下,排序1移动到标题2下,排序2移动到标题3下时,您希望发生的是当我将排序3拖动到标题1下,排序1移动到标题2下,排序2移动到标题3下时?谢谢!这几乎是我所需要的,我意识到我应该添加的唯一一件事是.sort项在拖动时应该交换位置,例如,将.sort1拖到sort2上,它们会改变位置。经过一段时间的搜索,我认为这实际上不需要使用jQuery sortable,只需拖放即可完成。@loreley是的,这可能不需要拖放。这正是我想要的,我非常感谢您花时间来完成它!谢谢谢谢这几乎是我所需要的,我意识到我应该添加的唯一一件事是.sort项在拖动时应该交换位置,例如,将.sort1拖到sort2上,它们会改变位置。经过一段时间的搜索,我认为这实际上不需要使用jQuery sortable,只需拖放即可完成。@loreley是的,这可能不需要拖放。这正是我想要的,我非常感谢您花时间来完成它!谢谢