Ext JS:为链接点击创建简单的侦听器

时间:2015-10-09 02:26:05

标签: javascript extjs javascript-events extjs6

我有一个小提琴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

2 个答案:

答案 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);