1

私は正常に動作する dijit/Tree を持っています。ただし、id (DOM id ではなく、ストア内の 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 に答える