我有一个输出以下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');})
};
答案 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文档