2013-10-24 36 views
0

我有2列,我把這兩列作爲droppable,當我「超過」任何一個,我創建新的「列表」,因爲它是孩子,我讓孩子們也可放開..動態元素下droppable父,超過事件不能正常工作

但我不能夠在新的孩子放下,我需要拖動的列表元素追加到兒童元素..

這裏是我的功能我寫道:

var generate = function (id) { 

    var id = "#" + id, c = 0, ul = $("<ul />"); 

    $(id).empty(); 

    while(c < 10) { 
     C++; 
     ul.append($("<li />", { text : c + " new list"})); 
    } 

    return ul; 

} 


$("li").draggable({ 

    revert:true, 
    helper: "clone" 

}); 

$(".cl").droppable({ 
    accept: "li", 
    activeClass : "highLight", 
    over: function(event, ui) { 

     var elements = generate(event.target.id); 

     $("#" + event.target.id).append(elements); 

     $(".cl li").droppable({ 
      over : function (event, ui){ 
       console.log("it is over now!"); // not working 
      }, 
      drop : function() { 
       console.log ("dropped"); 
      }, 

out : function() { 
console.log ("I am out") // not working.. 
} 


      }); 

     } 
    }); 

Here is the live demo

任何人都可以幫助我解決這個問題..和新的孩子成爲droppable和追加可拖動列表的副本..?

在此先感謝..

+0

你的小提琴似乎做工精細,我得到「掉線」記錄中的安慰。 – Nunners

+0

只有丟棄的事件正在工作..不是通過可拖動的,即可拖動的觸發器。 – 3gwebtrain

+0

我對你的意思感到困惑,你的可拖動處理程序沒有「拖放」事件。只有droppable處理程序有一個'drop'事件,它在控制檯中記錄'dropped'。你期望發生什麼? – Nunners

回答

1

的問題是,你再生頂級兒童每次在列的鼠標移動。功能:通過您在頂部添加此代碼修復它

if (event.target._generated) 
    return; 

event.target._generated = true; 

這裏是工作FIDDLEhttp://jsfiddle.net/eM8CX/