1

我有一个运行良好的 dijit/Tree。但是,我无法弄清楚如何从 id(商店中的 id,而不是 DOM id)获取特定行的 DOM 节点。

就像是:

myTreeModel.getDomNodeById( id );

我正在使用 dijit/Tree、dijit/tree/ObjectStoreModel 和 dojo/store/memoryStore。

一切似乎都是为了获取存储数据,但我希望更改 dom 节点上的类以响应我应用程序中其他地方的事件。

4

3 回答 3

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 );
于 2012-11-19T20:13:33.347 回答
0

根据API dijit/Tree有一个domNode属性。它应该指向树所在的 DOM 节点。

于 2012-11-19T14:19:49.453 回答
-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
  });
});
于 2012-11-19T16:27:05.020 回答