Javascript dojo dnd未在字符串类型中工作

Javascript dojo dnd未在字符串类型中工作,javascript,dojo,drag-and-drop,Javascript,Dojo,Drag And Drop,我在dojo学习dnd。我通过ajax获得的json数据。为了显示动态数据字符串,创建了一个div表单。dnd应用,看起来不错。但dnd不起作用。当我认为这是因为字符串类型。我征求意见 myboard.html <script> require([ "dojo/parser","dojo/dom", "dojo/on", "dojo/request", "dojo/json","dojo/_base/array" ,"dijit/Dialog","dijit

我在dojo学习dnd。我通过ajax获得的json数据。为了显示动态数据字符串,创建了一个div表单。dnd应用,看起来不错。但dnd不起作用。当我认为这是因为字符串类型。我征求意见

 myboard.html

 <script>
require([ "dojo/parser","dojo/dom", "dojo/on", "dojo/request", "dojo/json","dojo/_base/array"
          ,"dijit/Dialog","dijit/form/Button","dijit/form/CheckBox","dojo/query","dojo/dnd/Source","dojo/dnd/Target","dijit/layout/BorderContainer",
        "dijit/layout/TabContainer", "dijit/layout/ContentPane","dijit/layout/LinkPane",
        "dojo/domReady!" ], function(parser,dom,on,request,json,arrayUtil,Dialog,Button,CheckBox,query) {
    parser.parse();
       .....

function addTab(formCount,num){
var cont ='';
        var xhrArgs = {
                url: '/checkData',
                handleAs: "json",
                content:{
                    seq:num
                },
                load: function(data){
                    alert('ajax success:'+data);
 cont+='<div data-dojo-type="dojo/dnd/Source" class="source">'
 arrayUtil.forEach(data,function(item,i){
 cont+='<div class="dnd" data-dnd-type="a">'+data.seq+'</div>';
 cont+='<div class="dnd" data-dnd-type="b">'+data.name+'</div>';
 cont+='<div class="dnd" data-dnd-type="c">'+data.form+'</div>';
 cont+='<div class="dnd" data-dnd-type="d">'+data.desc+'</div>';
 cont+='<div class="dnd" data-dnd-type="e">'+data.writer+'</div>';
 }
 cont+='</div>';
    .....
}
myboard.html
require([“dojo/parser”、“dojo/dom”、“dojo/on”、“dojo/request”、“dojo/json”、“dojo/_base/array”)
“dijit/Dialog”、“dijit/form/Button”、“dijit/form/CheckBox”、“dojo/query”、“dojo/dnd/Source”、“dojo/dnd/Target”、“dijit/layout/BorderContainer”,
“dijit/layout/TabContainer”、“dijit/layout/ContentPane”、“dijit/layout/LinkPane”,
“dojo/domReady!”],函数(解析器、dom、on、请求、json、arrayUtil、对话框、按钮、复选框、查询){
parser.parse();
.....
函数addTab(formCount,num){
var cont='';
变量xhrags={
url:“/checkData”,
handleAs:“json”,
内容:{
序号:num
},
加载:函数(数据){
警报(“ajax成功:”+数据);
cont+=“”
arrayUtil.forEach(数据、功能(项目,i){
cont+=''+数据序列+'';
cont+=''+数据名+'';
cont+=''+数据表+'';
cont+=''+数据描述+'';
cont+=''+数据写入程序+'';
}
cont+='';
.....
}

您的代码有几个问题

首先,您在
forEach()
循环中使用
data.seq
data.name
data.form
,…但是,我想您应该使用
item.seq
item.name
item.form
,…来代替它

然后是第二个问题,您的代码末尾缺少一个括号,关闭了
forEach()
循环。我想这部分代码位于
,但我不能确定这一点

第三个问题是
dojo/dnd/Source
中的可拖动项应该具有类名
dojodnitem
。您的
中没有一个具有该类,因此它们都不可拖动

另一个问题是,您没有将
cont
中的HTML添加到DOM节点,因此它永远不会显示。我想部分代码位于
,但就像另一个问题一样,我不能确定它

最后一个问题是,您必须通过Dojo解析器解析内容才能使其正常工作。您可以使用:

parser.parse(domNode);
其中
domNode
是用于向其中添加HTML字符串的节点


我编辑了你的代码,结果是:

你的建议被作为类插入到div中。效果很好!!!!!非常感谢!!!!!!!!!!!