2012-11-19 40 views
1

我有一個dijit /樹,工作正常。但是,我不知道如何從id(商店中的id,而不是DOM id)中獲取特定行的DOM節點。如何通過Id獲取dijit/Tree節點?

喜歡的東西:

myTreeModel.getDomNodeById(id); 

我使用的dijit /樹的dijit /樹/ ObjectStoreModel和道場/存儲/ MemoryStore的。

一切似乎都是爲了獲取商店數據,但我想要改變一個DOM節點上的類,以響應我的應用程序中其他地方的事件。

回答

0

根據APIdijit/Tree有一個domNode財產。它應該指向樹所在的DOM節點。

+0

但我可以找到樹。它是代表我想要的id的特定葉子DOM節點。 – voidstate

+0

看看[這個問題](http://stackoverflow.com/questions/2005743/getting-a-dojo-node-when-i-have-the-store-item-id)。 – undefined

+0

這樣做。謝謝! – voidstate

-1
//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 
    }); 
}); 
2

最後,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);