Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Jquery可排序can';拖动时不要将列表附加到另一个列表_Jquery_Jquery Ui Sortable - Fatal编程技术网

Jquery可排序can';拖动时不要将列表附加到另一个列表

Jquery可排序can';拖动时不要将列表附加到另一个列表,jquery,jquery-ui-sortable,Jquery,Jquery Ui Sortable,我对Jquery可排序插件还有一个问题, 这是我昨天问的最后一个问题: 为了完成我的任务,当我删除列表中的一个元素时,它会成功地附加到一个列表中,条件是该列表中有子元素,如果我删除列表中没有子元素的元素,它将不起作用,我的元素将返回到他的位置。这是正常的,因为我的回复是固定的真实 更明确地说,当我拖动'212'标记并将其放到'206'标记中时,它工作正常(因为'206'标记已经有子项), 但是如果我做相反的操作,那么我拖动'206'标记(它与子对象一起移动),然后我尝试将其放入'212'标记中

我对Jquery可排序插件还有一个问题, 这是我昨天问的最后一个问题:

为了完成我的任务,当我删除列表中的一个元素时,它会成功地附加到一个列表中,条件是该列表中有子元素,如果我删除列表中没有子元素的元素,它将不起作用,我的元素将返回到他的位置。这是正常的,因为我的回复是固定的真实

更明确地说,当我拖动'212'标记并将其放到'206'标记中时,它工作正常(因为'206'标记已经有子项), 但是如果我做相反的操作,那么我拖动'206'标记(它与子对象一起移动),然后我尝试将其放入'212'标记中,它就不起作用了(因为212没有子对象)

我希望我可以拖放元素,在上面提到的例子中,“206”标记将是“212”标记的子元素

我希望你能理解我

想寻求帮助

编辑:

像sortable的receive函数一样,它与drogable函数中的drop具有相同的效果,sortable中是否有一个函数在鼠标进入没有子项的标记时触发事件

编辑:

经过一番艰难的头脑风暴:p,我的想法是使用sortable插件中的start和stop事件

使用start,我将在鼠标进入时(event mouseenter Jquery)将ulli附加到没有子项的标记中,并在鼠标离开时删除附加标记(event mouseleave Jquery) 使用stop,我将删除所有事件

结果就在这里 www.jsfiddle.net/UQrRk/6/ 它不起作用了


有什么建议吗?认为我已经解决了这个问题,我决定在这里解释解决方案,这样每个有同样问题的人都能找到解决方案

其思想是创建两个函数,一个进入jquerysortable的start事件,另一个进入stop事件

 start: function(event, ui) {
           ui.item.context.firstElementChild.remove();
            $('ul #discret').each(function() {
                $(this).show();

            });
        },
        stop: function(event, ui) {

            listProject();
        }
在$(document).ready中,在使用hide()Jquery隐藏了ul li之后,必须在没有子项的li中附加ul li

当排序开始时,我们显示这些ul,并将一个可排序项放入这个li(没有子项)变得简单

当停止时,我们列出项目


再次感谢您的帮助。

如果您将标记206移动到标记212中,那么哪个节点将替换当前标记206的位置?使用可排序插件,它将删除206标记并对新列表进行排序,因此无需替换它,在我的情况下,我可以拖动206标记并将其放入207标记(已经有子项)中但是如果我想把它放到210标记(没有子标记)中,它就不工作了,206标记会自动返回到它的位置。下面是我更新的示例,如果我错了,请更正我,你的结束是不同的,因为你在一个节点中有子标记。标记206移动到212是不可能的,因为没有办法知道哪个孩子或它的兄弟姐妹将取代它。您可以在同一级别节点之间切换。若你们想要更多,那个么关于节点的层次结构还有更多的问题,你们应该集思广益。我的想法是,我给每个并没有子元素的标记添加一个事件“dragenter”,所以若被拖动的标记进入并没有子元素的标记区域,这个标记将自动附加被拖动的元素,但它不起作用,我做头脑风暴,但不管用