2010-11-12 99 views
4

我有一個ExtJS頁面輸出下面的DOM。如何選擇ExtJS中的元素?

我想選擇一個特定的元素,以便我可以響應點擊它。

但是,以下代碼從未選擇使用extJS庫構建的元素。 JQuery似乎也無法選擇它們。

ExtJS甚至找不到在HTML文件本身的<body>元素中定義的元素。但是,JQuery確實可以選擇在<body>元素中定義的元素。

我一直在閱讀this guide這似乎表明它應該是沒有問題的,只是使用Ext.get()Ext.select()得到的元素,但是,如下面的代碼所示,元素從未選擇。

如何在ExtJS中選擇一個元素?

var members = Ext.select('x-panel'); 
for (var i = members.length - 1; i >= 0; i--){ 
    element = members[i]; 
    element.on('click', function() { alert('test');}) 
}; 

alt text alt text

回答

4

嘗試Ext.select('.x-panel')與在選擇器,這是需要通過類名選擇週期。

1

用途:

Ext.get(el); 

,如果你需要獲得輕量級元素,使用:

Ext.fly(el); 

見API文檔的靜態分機對象細節

2

bmoeskau是正確的,你可以使用Ext.select('。x-panel'),它返回一系列x-panel的div。

請注意,Ext.get()只返回一個元素,所以如果你想獲得多個匹配,你應該使用Ext.select()或Ext.query()。

而且更重要的是,Ext.select()返回Ext.CompositeElement,雖然文件沒有列出,但它支持Ext.Element對象的所有方法讓你的例子可以簡單地寫爲:

Ext.select('.x-panel').on('click', function(){ alert('test') }); 

上面的代碼將爲每個x-panel添加點擊操作的事件處理程序。