如何在ExtJS中选择元素?

时间:2010-11-12 15:12:15

标签: extjs event-handling

我有一个输出以下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

3 个答案:

答案 0 :(得分:4)

在选择器中使用句点尝试Ext.select('.x-panel'),这是按类名选择所必需的。

答案 1 :(得分: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 添加点击操作的事件处理程序。

答案 2 :(得分:1)

使用:

Ext.get(el); 

如果你需要获得flyweight元素,请使用:

Ext.fly(el);

有关详细信息,请参阅Static Ext对象的API文档