【发布时间】:2012-04-30 11:26:17
【问题描述】:
我的 JavaScript 代码如下
//我有一个Json:
var jsonRoles = {"roles": [
{"roleId": "1", "roleName": "role1", "roleDesc": "This is role1"},
{"roleId": "2", "roleName": "role2", "roleDesc": "This is role2"},
{"roleId": "3", "roleName": "role3", "roleDesc": "This is role3"}
]
};
//为了获取DND容器中列出的所有角色名称,我使用了for循环:
var results="";
for(var i=0;i<jsonRoles.roles.length;i++){
results += '<div class="dojoDndItem">' + jsonRoles.roles[i].roleName + '</div>';
}
//两个内容窗格如下,用于拖放两个块
var assignPermissionToUser1 = new dijit.layout.ContentPane({
//splitter:true,
region: "left",
style: "background-color: white;width: 200px; height: 500px",
content:'<div>' + '<label>Roles</label>' + '</div>' + '<div dojoType="dojo.dnd.Source" id="rolelistNode" class="container">' +
'<div dojoType="dojo.dnd.Source" class="dojoDndItem movableContainer">' + '</div>' + results +
'</div>'
});
var assignPermissionToUser2 = new dijit.layout.ContentPane({
//splitter:true,
region: "right",
style: "background-color: white;width: 200px; height: 500px",
content:'<div>' + '<label>Users</label>' + '</div>' +'<div dojoType="dojo.dnd.Source" class="container">' +
'<div dojoType="dojo.dnd.Source" class="dojoDndItem movableContainer">' + '</div>' +
'</div>'
});
//边框容器
innerBorderContainerAsAccordion = new dijit.layout.BorderContainer({
id: "innerBorderContainerAsAccordion",
region: "center",
style: "background-color: white;width: 175px; height: 550px"
});
//设置边框容器的内容
innerBorderContainerAsAccordion.addChild(assignPermissionToUser1);
innerBorderContainerAsAccordion.addChild(assignPermissionToUser2);
我的问题是,如果我将一个 DND 容器上的元素拖到另一个容器上,它如何按 ID 或字母等对项目进行排列/排序?
例如(下图)
两个容器的初始状态
将一些项目拖放到第二个免打扰容器后
我怎样才能像这样强制对第二个 DND 容器的项目进行完全排序:
有人可以帮忙吗?谢谢
【问题讨论】:
-
那么我想你可以在这里得到你的答案..stackoverflow.com/questions/1496033/sorting-li-tags
-
我告诉过你我不能使用 jQuery。有没有其他选择?
-
@AbdulAziz 是的。学习道场并在道场中重写。
-
@Esailija 我用了道场,有什么意义?
-
@AbdulAziz 关键是您可以自己在 dojo 中实现 jQuery 答案。还是您只能直接复制粘贴工作代码?
标签: javascript dojo drag-and-drop dojo-dnd