javascript - 为链接点击创建简单的监听器

标签 javascript extjs dom-events extjs6

我有一把 fiddle 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);

我试图遵循 instructions here在“监听 DOM 事件”部分。

此外,一旦我的处理程序函数返回,我不希望任何其他处理程序可能会触发..所以我猜相当于 jQuery preventDefault

最佳答案

您也可以简单地使用监听器,例如:

listeners: {
    click: {
        element: 'el',
        delegate: 'a',
        fn: function() {
            Ext.Msg.alert('I have been clicked!')
        }
    }
}

基于您的工作示例:https://fiddle.sencha.com/#fiddle/v72

(委托(delegate)可以是任何选择器)

关于javascript - 为链接点击创建简单的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028914/

相关文章:

javascript - 如果文件有任何更改,则在 node.js 中热重载外部 js 文件

javascript - 与此等效的 jQuery 是什么,它有什么作用?

javascript - JavaScript 中的组件间通信

javascript - 功能组件中 useEffect() 内的 useState()

javascript - 是否有扩展功能的 promise 标准,如 .all()、.finally() 等

javascript - 使用 jQuery 将 div 附加到文档末尾?

extjs - 在 EditorGridPanel 中上下移动行

javascript - 过滤 ViewModel 存储并实现到 ExtJS 面板的正确方法是什么?

javascript - 直接分配的事件处理程序是实际的对象属性吗?

javascript - 鼠标悬停 mouseout JavaScript 不工作