2012-08-22 66 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

相關問題