我想拥有一个功能,每次我将图片从可排序对象拖动到空白空间时,都会创建一个新的可排序对象。
如果我将两个图像存储在可排序对象中,则可以拖动它们,然后会真正创建新的可排序对象(灰色框)。
现在,我希望能够将图像拖出新创建的灰色框,这样,如果我将其放在空白处,则会再次创建一个新的灰色框。这是行不通的。如何将ul的功能传播到动态创建的ul?刷新似乎不起作用,或者我的错误在哪里?

这是我的jsfiddle:http://jsfiddle.net/Gy74c/6/

$( "ul" ).sortable({opacity:0.4, connectWith: 'ul',tolerance:'pointer',cursor:'move', dropOnfull: true, stop :function (event,ui){

                                       var positionLeft=ui.position.left;
                                       var positionTop=ui.position.top;
                                       var overSortable=elementBeingHoveredOver(event.pageX, event.pageY);

                                       if (!overSortable){
                                       var x=$ ("<ul id='sortable10' class='drop'></ul>");
                                       $(x).css('position','absolute');
                                       $(x).css('left',positionLeft);
                                       $(x).css('top',positionTop);
                                       $(x).css('height','70px');
                                       ui.item.appendTo(x);
                                       $(x).sortable({connectWith: 'ul'})
                                       x.appendTo('#images');
                                       $('#images').append(x);
                                       $( "ul" ).sortable({ connectWith: 'ul'});
                                       $("ul").sortable('refresh');
                                       }

    currentID=$(this).attr('id');
    var liNumber=document.getElementById(currentID).getElementsByTagName("li").length;
    if (liNumber==0 &&!currentID=="sortable1"){document.getElementById(currentID).style.visibility= "hidden"}
                        }//stop-function

                     });//sortable-block

最佳答案

我已经把它“分类”了;)..至少,如果我正确理解你的话。

http://jsfiddle.net/Gy74c/10/

$( "ul" ).sortable(options);


我制作了一个var选项,其中包含可排序的所有选项。.现在,在停止事件中,我再次使用所有选项反弹可排序的..这只是没有起到作用。.您使用了ui.position .left和.top到新创建的ul的绝对位置。您必须使用ui.offset.left和top来获取元素的实际左侧和顶部。如果没有此图像,图像将放置在屏幕外部第二次您移动它,然后将其全部抬起。 ;)

提示:由于var x在声明时已经是一个jQuery对象,因此您以后不必仅使用$(x),x.jQueryMethod就可以了;)

编辑:糟糕,我忘了删除console.log()的

关于jquery - jQuery UI可排序传播动态创建的可排序对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17638975/

10-09 17:25