Привязка событий щелчка к вкладке в Ext JS - PullRequest
0 голосов
/ 16 мая 2011

Снова Алоха, ТАК.

Я занят работой над проектом, который в значительной степени предназначен для работы с внешним интерфейсом.Я использую версию 4.0.0, предполагая, что это то, что необходимо знать.У меня есть некоторый код:

panel = Ext.create("Ext.panel.Panel",{
        //initializing stuffs
})

Несколько из них тогда

 tabs = Ext.create("Ext.tab.Panel", {
        //initialize config
        items: [
               //the panels
        ]
  })

Теперь моя большая проблема заключается в том, что мне нужно иметь возможность привязать событие кфактические вкладки.Я знаю, что могу связать события с панелью вкладок и панелью вкладок, но мне нужно связать событие click с одной из вкладок на панели.Я попытался сделать что-то вроде этого:

panel = Ext.create("Ext.panel.Panel", {
        //initializing stuffs
        listeners: {
                 click: {
                        fn: function() {
                            console.log("in click listener for panel")
                        }
                  }
         }
 })

Однако проблема заключается в том, что я могу сказать, что это связано с самой панелью, а не с вкладкой вверх на панели вкладок.Интересно отметить, что на самом деле он даже не привязывается к реальной панели, поскольку это касается функциональности, потому что я никогда не вижу эту информацию в журнале консоли.знать, как привязывать события непосредственно к вкладкам?Или вообще как получить доступ к вкладкам напрямую?Я просматривал документы по ExtJS API, но до сих пор ничего не могу найти, поэтому было бы здорово, если бы кто-то здесь мог помочь!: D

Просто чтобы прояснить, я не пытаюсь зацепиться за изменение вкладки.Я пытаюсь подключиться к фактическому событию нажатия на вкладку, потому что я собираюсь проверить, нажата ли средняя кнопка мыши, чтобы я мог закрыть вкладку, если она есть.

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Я положил это на вкладку внутри панели вкладок в ExtJS 3. Нечто подобное должно работать в 4.

listeners: {
    activate: function() {
        var me = this;
        Ext.fly(this.ownerCt.getTabEl(this)).on({
            click: function() {
                me.loadProducts();
            }
        });
    },
    single: true
},

loadProducts: function() {
    this.load({
    url: 'products.jsp',
    params: {
        caseID: window.caseID
    },
    scripts: true
});
1 голос
/ 17 мая 2011

Вы можете добавить слушателей к TabPanel , которые слушают beforetabchange и / или tabchange

...