2011-06-06 75 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,从而使它们都是可拖动的。