我有一个小提琴here。
仍在试图找出Ext JS。单击链接时如何触发单击事件?应该是世界上最简单的事情吗?明显点击a
而不是span
时,会显示提醒。另外,如果可能的话,我想将那些将监听器附加到ViewController
的代码块移动。
var container = Ext.create('Ext.Container', {
renderTo: Ext.getBody(),
html: '<div><a class="test">test....</a><br><br><br><span>some text</span></div>',
listeners: {
click: function(){
Ext.Msg.alert('I have been clicked!')
}
}
});
container.down('a.test').on('click', function(){
this.fireEvent('click', container);
}, container);
我试图关注“倾听DOM事件”部分中的instructions here。
此外,一旦我的处理函数返回,我不希望任何其他处理程序可能触发..所以我猜相当于jQuery preventDefault
。
答案 0 :(得分:2)
您也可以简单地使用listeners
,例如:
listeners: {
click: {
element: 'el',
delegate: 'a',
fn: function() {
Ext.Msg.alert('I have been clicked!')
}
}
}
基于您的工作示例:https://fiddle.sencha.com/#fiddle/v72
(delegate
可以是任何选择器)
答案 1 :(得分:1)
你快到了。
您需要在侦听器中使用getEl()
来检索实际的DOM元素,以便将侦听器附加到它。
container.getEl().down('a.test').on('click', function(){
this.fireEvent('click', container);
}, container);