Javascript dojo dnd未在字符串类型中工作
我在dojo学习dnd。我通过ajax获得的json数据。为了显示动态数据字符串,创建了一个div表单。dnd应用,看起来不错。但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
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中。效果很好!!!!!非常感谢!!!!!!!!!!!