首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DOM事件与sencha事件之间的事件顺序

DOM事件与sencha事件之间的事件顺序
EN

Stack Overflow用户
提问于 2020-03-10 15:41:31
回答 2查看 99关注 0票数 0

我有一个用extjs7.1现代tookit编写的数据视图,带有一个带有锚标记的模板和一个select事件:

https://fiddle.sencha.com/#view/editor&fiddle/34bd

代码语言:javascript
复制
Ext.create({
    renderTo: document.body,

    xtype: 'list',
    itemTpl: '<div class="contact"><a onclick="event.preventDefault();console.log(\'link\');" href="{firstName}">{firstName}</a> <b>{lastName}</b></div>',

    store: {

        data: [{
            firstName: 'Peter',
            lastName: 'Venkman'
        }, {
            firstName: 'Raymond',
            lastName: 'Stantz'
        }, {
            firstName: 'Egon',
            lastName: 'Spengler'
        }, {
            firstName: 'Winston',
            lastName: 'Zeddemore'
        }]
    },
    listeners: {
        select() { console.log('select'); }
    }
});

我预计链接事件将在列表选择事件之前触发,但相反的情况会发生,甚至最糟糕的情况是,这两个事件都会被一个接一个地触发。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-11 11:58:50

我正试图理解用户按您的建议在哪里单击,但我不知道如何单击。

正如@LightNight所说,您可以在选择之前使用childtap事件来运行所需的处理程序。如果您想了解单击发生的位置-只需使用event.target。看我的示例

票数 2
EN

Stack Overflow用户

发布于 2020-03-11 10:08:55

列表的onItemDisclosure属性如何,而不是链接?

使用onItemDisclosure函数并选择监听器来分隔两个操作。

onItemDisclosure:布尔/函数/字符串/对象 设置为true,以在每个列表项上显示一个公开图标。然后,列表将触发公开事件,该事件可以在子程序之前停止。通过将此配置设置为函数,将在打开公开信息时调用传递的函数。这可以是函数对象,也可以是Ext.app.ViewController方法的名称。 最后,可以指定具有定义的作用域和处理程序属性的对象。这也将绑定到tap事件侦听器,并且在您想要更改处理程序的作用域时非常有用。

代码语言:javascript
复制
xtype: 'list',
itemTpl: [
    '<div class="contact">',
    '<b>',
    '{firstName} {lastName}',
    '</b>',
    '</div>'
],
onItemDisclosure: function (record, btn, index) {
    console.log('Disclosure');
    Ext.Msg.alert('Tap', 'Disclose more info for ' + record.get('firstName'), Ext.emptyFn);
},
store: {

    data: [{
        firstName: 'Peter',
        lastName: 'Venkman'
    }, {
        firstName: 'Raymond',
        lastName: 'Stantz'
    }, {
        firstName: 'Egon',
        lastName: 'Spengler'
    }, {
        firstName: 'Winston',
        lastName: 'Zeddemore'
    }]
},
listeners: {
        select() {
            console.log('select');
        }
}

下面是小提琴示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60621082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档