0

有谁知道是否可以在 Sencha Touch 列表项上有多个图标按钮来监听不同的事件?如果是这样,我该如何做到这一点?

例如,假设我有一个人员列表,并且有一个电子邮件、电话图标和每个人的位置地图。我想显示 3 个小图标并能够映射每个图标以执行 3 个单独的操作。

4

2 回答 2

2

这取决于您如何创建按钮。

如果按钮是简单的 HTML using itemTpl,您可以只监听 List 上的itemtap事件并使用event参数来检测您按下了哪个按钮。您可以通过自定义属性甚至类名来做到这一点:

myListItemTapListener: function(list, index, target, e) {
    var el = Ext.get(e.getTarget());
    if (el.hasClass('map')) {
        this.navigate(index);
    } else if(el.hasClass('email')) {
        this.email(index);
    } else if(el.hasClass('phone')) {
        this.phone(index);
    }
}

如果您的按钮实际Ext.Button位于组件列表中,则可以在创建组件时简单地在每个按钮上添加一个侦听器。Sencha Docs的DataView Guide中有一个如何执行此操作的示例。

于 2013-01-23T20:53:59.970 回答
0

组件 DataView 可能会对您有所帮助。你可以看到这个[指南]:http ://docs.sencha.com/touch/2-0/#!/guide/dataview-section-4

我写了一个 [demo]:https://github.com/hs3180/Sencha-Touch-Component-DataView ,在 app/view/ 中,

  • Main.js,一个带有useComponets 为true 的数据视图组件,并将defaultType设置为“demo.view.Item”。
  • Item.js,一个DataItem,每个item的可见内容是一个面板(在Card.js中)。我使用数据映射将记录中的名称(在 store 中)链接到userName(在 demo.view.Card 中)。
  • Card.js,每个人的面板。一个用户名标题和 3 个按钮。
于 2013-01-24T20:00:52.880 回答