2012-08-22 65 views
0

我已经创建了具有源位置和目标位置的dnd解决方案。现在拖动是双向的,我希望它是单向目标来源。然后从源添加一个图像到每个项目(一个删除图标),这样用户就可以点击该图标并将记录发送回正确的目标。如何将图像添加到dojo/dnd/Source中的项目

第1部分,我想了解如何制作dnd单向和第2部分,如何向每个项目添加图像。

谢谢

回答

0

有一些事件可以在dnd模块中处理。

对于'part1',请参阅此http://dojotoolkit.org/reference-guide/1.8/dojo/dnd.html#id6并将is'Source : false设置为仅应作为目标的目标。

和'part2'转到http://dojotoolkit.org/reference-guide/1.8/dojo/dnd.html#id8并阅读'onDrop'。如果在“仅限目标”源中重载该函数,则可以访问正在丢弃的节点。

onDrop: function(source, nodes, copy) { 
    dojo.forEach(nodes, function(node) { 
     node.innerHTML += "<button title=Delete> X </button>"; 
    }); 
} 
0

这就是我的工作。

dojo.connect(selectedInstructions, "onDndDrop", instructions.addDeleteButton); 

addDeleteButton: function (source, nodes, copy, target) { 
    if (source != target) { 
     dojo.forEach(nodes, function(node) { 
      var instructionId = node.getAttribute("id"); 
      var oImg = document.createElement("img"); 
      oImg.setAttribute('src', 'images/delete.png'); 
      oImg.setAttribute('alt', 'Remove'); 
      oImg.setAttribute('class', 'remove_instruction'); 
      oImg.setAttribute('onClick', "javascript:instructions.removeInstruction('" + instructionId + "')"); 
      document.getElementById(instructionId).appendChild(oImg); 
     }); 
    } 
}, 

然后我试图让on工作,因为connect正在贬值,但我似乎没有多少运气。我将不得不在以后再回来,因为我现在正处于时间紧迫的状态,以便将此代码取出。

on(selectedInstructions, "onDrop", instructions.addDeleteButton); 
aspect.after(selectedInstructions, "onDrop", instructions.addDeleteButton); 

希望Dojo文档更好。感谢社区的善良,但它的支持。

+0

我认为这将是完全适用,使用无论是一个或一个方面。你可能希望''搭配''指令'来获得正确的范围,例如:'aspect.after(selectedInstructions,“onDrop”,lang.hitch(instructions,'addDeleteButton');'。至于'.on' ,它应该工作 - 尽管去除'on'前缀 - 但它的设计是针对DOMEvent主要是imho – mschr

相关问题