2011-10-01 14 views
2

我使用jQuery的模板,用於動態創建具有不同項目的列表(列)(它們也動態添加)頁面刷新,也創造了一個插件,它可以幫助移動項目從一個列表到第二或第三即使用jquery ui拖動&刪除,但在將項目拖放到新添加的列表時出現問題。問題移動新項目新增加的列表,直到我做

情景:當我點擊添加列表按鈕,在頁面上創建列表。所以我添加了一個名爲'list1'的列表,每個列表都有一個按鈕來添加列表中的項目,所以通過按兩次我在'list1'上添加了2個項目。項目是可移動/可拖放/可丟棄的。現在添加了名爲'list2'的第二個列表。因此,如果我嘗試將項目從「list1」移動到「list2」,則不會執行該操作,而是將項目移至「list1」。這發生在沒有頁面重新加載的情況下,但是如果我刷新頁面並且現在執行相同的操作,則該項目可以被移動到'list2'。下面是我使用的拖放目的的代碼如下(下面的代碼放在我的jQuery插件):

var id = $('.' + options.dropID); 
      var id0 = options.dropID; 

      $('.' + options.dropID).sortable({ 

       helper: "clone", 
       revert: "invalid", // go back to original droppable when drop outside drop area 
       connectWith: '.' + options.dropID, 
       over: function (event, ui) { 

        // may be usefull 
        var sortableElement = this; 

        var dataToSave = { 
         name: ui.item.text(), 
         objid: ui.item.attr('title'), // id has changed for array so use original id stored in title 
         thisID: $(sortableElement).attr('id'), 
         array: $(sortableElement).sortable("serialize") 
        }; 

        // save the new data 
        saveData(dataToSave); 
       } 
      }); 

所以我注意到一個現象是,不同的行爲是在這裏: - 增加一個項目並沒有頁面加載,它加入以下的div

<div id="337" class="cardItem droppable">   </div> 

所以,如果我嘗試添加此項目不允許我。

  • 頁面加載之後,修改上面div來:

它增加了用戶界面可排序以類屬性。所以我試着搜索這個ui-sortable如何或何時被添加,它是通過jquery的可排序方法完成的。

,並在頁面加載我打電話這樣的插件:

<script type="text/javascript"> 
     $(window).bind("load", function() { 
      $('.laneList').ListDragandDrop(); 
     }); 
    </script> 

我還調用ListDragandDrop()添加新的列表或項目之後,但它不添加ui-sortable到div,我必須刷新頁面,以便它可以使'list2'可丟棄。你能告訴我我做錯了什麼,或者我應該修改什麼來使其工作。

回答

1

JQuery的sortables似乎已經固定在最新版本的創建後添加的項目。如果你仍然看到這個問題,請添加一個jsfiddle,這樣我們可以幫助進行調試。

相關問題