我有一個dijit /樹,工作正常。但是,我不知道如何從id(商店中的id,而不是DOM id)中獲取特定行的DOM節點。如何通過Id獲取dijit/Tree節點?
喜歡的東西:
myTreeModel.getDomNodeById(id);
我使用的dijit /樹的dijit /樹/ ObjectStoreModel和道場/存儲/ MemoryStore的。
一切似乎都是爲了獲取商店數據,但我想要改變一個DOM節點上的類,以響應我的應用程序中其他地方的事件。
我有一個dijit /樹,工作正常。但是,我不知道如何從id(商店中的id,而不是DOM id)中獲取特定行的DOM節點。如何通過Id獲取dijit/Tree節點?
喜歡的東西:
myTreeModel.getDomNodeById(id);
我使用的dijit /樹的dijit /樹/ ObjectStoreModel和道場/存儲/ MemoryStore的。
一切似乎都是爲了獲取商店數據,但我想要改變一個DOM節點上的類,以響應我的應用程序中其他地方的事件。
根據APIdijit/Tree
有一個domNode
財產。它應該指向樹所在的DOM節點。
//code<1.7
dojo.connect('id of tree','onClick',function(evt)
{
console.log(evt.id[0]);
//onclick event tree return id of its node in array
});
//code>1.7
require(['dojo/on'],function()
{
on('id of tree','click',function(evt)
{
console.log(evt.id[0]);
//onclick event tree return id of its node in array
});
});
最後,xyu的鏈接給了我答案。
首先,我在一個新的功能混合到樹實例:
var myTree = new Tree(
{
model: treeModel,
autoExpand: true,
showRoot: false,
title: 'My Items',
openOnClick: true,
getDomNodeById: function(id) // new function to find DOM node
{
return this._itemNodesMap[ id ][0];
}
});
然後,我可以這樣稱呼它:
var treeNode = myTree.getDomNodeById(dataId);
但我可以找到樹。它是代表我想要的id的特定葉子DOM節點。 – voidstate
看看[這個問題](http://stackoverflow.com/questions/2005743/getting-a-dojo-node-when-i-have-the-store-item-id)。 – undefined
這樣做。謝謝! – voidstate