2011-06-06 130 views
0

我正在使用Sencha的基本拖放示例並對其進行修改。我需要一個能夠創建新div並使其可拖動的按鈕。我已經能夠做到第一件事,但是我無法拖延。在sencha觸摸中動態創建可拖動的div

我知道如果我這樣做我做的div拖動:

new Ext.util.Draggable('my-div-id', { }); 

但是當我點擊該按鈕第二次,但這並沒有工作了。看來,我只能創建一個具有相同ID的可拖動div。

我該如何解決這個問題?

+0

我的臨時修復是用計數器創建一個動態div ID。因此,所有創建的div都有不同的id,因此上面的代碼適用於我創建的每個div,但我相信應該有一個更好,更優雅的解決方案 – marimaf 2011-06-06 03:13:32

+0

您是如何創建Div的? Draggable構造函數不僅僅接受一個I​​D,所以傳入新創建的元素也應該這樣做。 – Stuart 2011-06-21 17:57:17

+0

我做了什麼創建var divTag = document.createElement(「div」);設置我需要的所有屬性,然後使用document.body.appendChild(divTag)將其添加到文檔中;在我這樣做之前,我設置了ID:divTag.id =「myDivID」+ count; – marimaf 2011-06-22 02:06:29

回答

0

這是我做過什麼:

var count = 0; 

在我的函數來創建一個div:

var divTag = document.createElement("div"); 
divTag.id = "somename" + count; 

//Style the new div 
divTag.setAttribute("align","center"); 
divTag.style.border = "1px solid rgba(0,0,0,.3)"; 
divTag.style.width = "100px"; 
divTag.style.height = "60px"; 
divTag.style.background = "#5283D1"; 
divTag.style.top = "170px"; 
divTag.style.left = "5px"; 
divTag.style.position = "absolute"; 
divTag.style.color = "rgba(0,0,0,.5)"; 
divTag.style.borderRadius = "6px"; 

divTag.className ="x-draggable"; 

//added some text inside the div 
divTag.innerHTML = count + " new"; 

document.body.appendChild(divTag); 

new Ext.util.Draggable('somename'+count, { 
}); 

count += 1; 

所以與變量count我創造每一個DIV我生成一個新的ID,從而使它們都是可拖動的。