2

この関数で多くの例を見ましたfindが、最新バージョン (4.1.1a だと思います) を使用すると、find 関数は廃止されたと表示されます。

私はこれを持っています:

init: function(){
  this.control({
    'mainMenuTree': {
      itemdblclick: this.itemdblclicked
    }
  });
  this.callParent();
},

itemdblclicked: function itemdblclicked(me, record, item, index, e, eOpts){
  var itemClicked = record.getData().text;
  var tabPanel = Ext.getCmp('centerPanel');
  //var tabBar = tabPanel.getTabBar();
  tabPanel.add({
    xtype: 'tab',
    title: itemClicked,
    id: itemClicked
  });
  //tabPanel.items.find(function(i){console.log(i)});
  //console.log(tabPanel.items);
}

したがって、タブの存在を確認するには、タブの配列を取得する必要があります。ロジックは必要ありません。項目の配列 (すべてのタブの ID) を取得するための関数またはプロパティの名前が必要なだけです。

ありがとうございました。:)

4

1 に答える 1

2

私は自分でそれを作りました。:) とにかくありがとう。:)

itemdblclicked: function itemdblclicked(me, record, item, index, e, eOpts){
        var itemClicked = record.getData().text;
        var tabPanel = Ext.getCmp('centerPanel');
        //var tabBar = tabPanel.getTabBar();


        var items = tabPanel.items.items;

        var exist = false;
        for(var i = 0; i < items.length; i++){
            if(items[i].id === itemClicked){
                tabPanel.setActiveTab(i);
                exist = true;
            }
        }
        if(!exist){
            tabPanel.add({
                xtype: 'panel',
                title: itemClicked,
                id: itemClicked,
                closable: true
            });
        }
    }
于 2012-11-18T10:26:32.980 に答える