2014-04-24 68 views
0

我正在使用div在單元格內的表格上工作,並且我希望該div可以放置。 當我在div中放入某些東西時,會在第一個div下生成一個新的div。 但動態生成的div必須是可放開到現在是不是......製作一個動態生成的div可插入

這裏是一個div創建:

// in a loop with i 
divCreate = $("<div>", { id: "divCreate" + i, class: "droppable" }); 
$(divCreate).css("text-align", "center"); 
$(divCreate).css("width", "125px"); 
$(divCreate).css("height", "30px"); 

$(Cell).append($(divCreate));  

JS可放開:

$(".droppable").droppable(function() { 
    // a lots of line with several function 
}) 

所以我試着將$(divCreate).droppable();添加到創建div。現在div可以droppable,但不能使用我影響類「.droppable」的JS函數。

是否需要製作$(divCreate).live("droppable");?或者是不可能的,我需要把所有的代碼從JS函數到div創建?如果可能,我真的想避免這種情況。

回答

2

移動droppable代碼到一個名爲功能:

function my_droppable() { 
    // a lots of line with several function 
} 

,改變你的通用綁定:

$(".droppable").droppable(my_droppable); 

然後,你可以這樣做:

divCreate.droppable(my_droppable); 

動態追加新元素後。

+0

我認爲它可以這樣工作,但我怎樣才能使用函數做drop事件? 'divCreate.droppable({drop:dropFunction()});' –

+0

它應該是'{drop:dropFunction}' – Barmar

+0

它的工作原理!萬分感謝! –

1

嘗試使用:

$(divCreate).appendTo($(Cell)).droppable(); 
0

Here is the sample我已創建。

$("<div/>", { 
    "class": "test", 
    id:"myDiv", 
    text: "Drag me!", 
    width:"125", 
    height:"30", 
    'text-align':"center" 
}).appendTo("#droppable"); 

$("#myDiv").css("text-align", "center"); 

$("#droppable").draggable();