我想知道点击一个视图,点击了哪个ExtJS控件。我是否需要订阅点击所有控件或有没有办法我可以订阅根元素并获得实际的ExtJS控件点击?我能够找到DOM元素,但我想要的是ExtJS控件。 我正在使用最新版本的ExtJs 5,我想听一下视图的任何元素,可能是Panel,Grid,Textarea等。我在顶级dom元素中使用单个事件处理程序。我的代码如下所示:
listeners: {
click: {
element: "el",
fn: function fn(e,t) {
var domComp = Ext.get(t);
var xComp;
var currentNode = t;
while(true) {
var compID = currentNode.parentNode.id;
xComp = Ext.ComponentManager.get(compID);
if(xComp) break;
currentNode = currentNode.parentNode;
}
//Do something on xComp
}
}
}
我已经部分能够实现这一目标。但是我的问题仍然是我不想要调用实际控件的click处理程序?我应该调用上面写的处理程序。例如:如果单击一个复选框,我不希望它被检查,而是调用上面的处理程序,我知道这个复选框被点击了?有什么建议吗?