2013-07-14 49 views
2

我想有一個功能,每次我從一個空的空間可排序的圖像拖動一個新的可排序創建。 如果我以可排序的方式存儲兩張圖像,那麼可以拖動它們,並且真正創建新的可排序列表(灰色框)。 現在我希望能夠將圖像拖出新創建的灰色框,以便再次創建一個新的灰色框,如果我放在空白空間中。這不起作用。我如何將uls的函數傳播給動態創建的uls?刷新似乎不起作用或我的錯誤在哪裏?jquery ui可排序的傳播動態創建排序

這裏是我的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 

回答

1

我知道了 '整理' 出來;)..至少,如果我理解正確的話。

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()的

+0

我很抱歉f。你的縮進..但我認爲這不會是一個問題 –

+0

謝謝,我欠你一個,對不起我的英語不好,這是一個有點生疏:)花了最後3個小時試圖讓它解決 – user2514539

+0

不,這是最小的問題,我真的很高興,它的工作 – user2514539