Kind'a拍攝一張空白我想,還有dndSource幾個不同的實現。但是有一些事情需要了解在mouseover/dnddrop期間調用的事件/ checkfunctions。
一種方法是設置爲checkAcceptance(source, nodes)
如果您有任何目標。然後保留當前拖動的節點的引用。獲取棘手,雖然有多個容器具有動態內容。
設置你的源代碼,而重寫checkAcceptance
和使用已知的,(也許是全球)變量跟蹤。
var lastReference = null;
var target = dojo.dnd.Source(node, {
checkAcceptance(source, nodes) : function() {
// this is called when 'nodes' are attempted dropped - on mouseover
lastReference = source.getItem(nodes[0].id)
// returning boolean here will either green-light or deny your drop
// use fallback (default) behavior like so:
return this.inhertied(arguments);
}
});
最好的辦法可能就是這樣的 - 你得到兩個目標和源加上手頭的節點,但是你需要找出哪些是看在節點右邊堆我相信它在出版同時作爲事件(onDrop
)您選擇使用媒體鏈接:
dojo.subscribe("/dnd/drop", function(source, nodes, copy, target) {
// figure out your source container id and target dropzone id
// do stuff with nodes
var itemId = nodes[0].id
}
可用機械/主題通過dojo.subscribe和活動在此列出 http://dojotoolkit.org/reference-guide/1.7/dojo/dnd.html#manager
感謝您的回覆。我很感激幫助。 我不知道你的意思是「dndSource有幾個不同的實現」......你能澄清一下嗎?我正在使用Source.js中的一個。 .subscribe技術與我的問題中描述的問題相同。如果我的訂閱在內置之後被調用,則該項目已從源代碼中刪除。我不希望我的程序依賴於回調的順序。 – Harold 2012-07-11 18:06:27
有一個特定於dijit.Tree的dnd api,這些dojox中的一些..它是dojo/dnd/Source嗎?無論哪種方式,實現一個dndSource.checkAcceptance(源,節點)然後 - 我填寫空白 – mschr 2012-07-12 21:53:26
哦,沒有注意到你的答案如下:p – mschr 2012-07-12 22:02:07