我希望有一个功能,每次我从空白空间中的可排序拖动图像时,都会创建一个新的排序。 如果我将两个图像存储在一个可排序的图像中,那么我可以拖动它们并真正创建新的可排序图像(灰色框)。 现在我希望能够将图像从新创建的灰色框中拖出来,这样如果我放在一个空白区域,就会再创建一个新的灰色框。这不起作用。如何将我的uls函数传播给动态创建的uls?刷新似乎不起作用或我的错误在哪里?
这是我的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
答案 0 :(得分:1)
我已经把它“排序”了;)..至少如果我理解正确的话。
$( "ul" ).sortable(options);
我已经制作了一个var选项,其中包含可排序的所有选项..现在在停止事件中我再次使用所有选项反弹可重复..这只是没有做魔术..你利用了ui.position.left和.top到绝对位置新创建的ul ..您必须使用ui.offset.left和top来获取元素的实际左侧和顶部..如果没有这个,图像将被放置第二次移动它时屏幕外,并将其全部搞定。 ;)
提示:由于var x已经是声明中的jQuery对象,你以后不必使用$(x)只需x.jQueryMethod就可以了;)
编辑:糟糕,我忘记删除console.log()了