jQuery 交换元素内容给出类型 F 错误

jQuery Swapping Elements Contents Gives Type F error

本文关键字:类型 错误 交换 元素 jQuery      更新时间:2023-09-26

根据我在这里的另一个线程,我已经更新了JS小提琴代码

     $(".drop-container").droppable({
    activeClass: "ui-state-highlight",
    //accept: "#mykeys ul li",
    accept:"#mykeys ul li, .drop-container li",
    //connectWith: ".drop-container",
    drop: function( event, ui ) {
         var cid=ui.draggable.attr("id");
         var from_id=ui.draggable.parent().attr('id');       
         if(typeof from_id != 'undefined'){
            var editor = $('#'+cid);  //put your ids here
            var viewer = $('#'+from_id);
            editorContent = editor.clone();
            viewerContent = viewer.clone();
            editor.replaceWith(viewerContent);
            viewer.replaceWith(editorContent);
         }
         $(this).empty();
         //append the draggable onto this
        $(ui.draggable).appendTo(this);
    },
    out: function( event, ui ) {
        var oid=$(ui.draggable).attr("id");
        console.log('dragged out '+oid);
        var from= $(this).closest(".drop-container").attr("id");
        //console.log('from '+ from);               
    }
   });

我想做的是在以下情况下交换内容我们在容器之间拖动。对于我的生活,我不能让它正常工作。希望你能帮上忙。

当你去小提琴代码时,你会看到你可以从列表中拖放到容器上然后,您可以在容器之间拖放

我在这里要做的是是否有当前内容在你放入的容器中,它将交换它几乎与你正在放入的内容一起出来就像可排序的一样会起作用。但是我想不通如何将可排序对象附加到我拥有的结构

我已经分叉并将您的JSFiddle更新为工作版本。

变化:

  • 将 ID 添加到.drop-container跨度
  • :drop回调:accept: "#mykeys ul li",更改为accept: "#mykeys ul li, .drop-container li",,因为删除的元素不再#mykeys
  • :drop回调:添加了source_elementexisting_element,因此我们可以获取源和目标并交换.tree列表中的项目