0

使用 Sencha Touch 2 时,我想将itemtap事件动态地触发到列表中的一个项目 ( Ext.List),我是这样做的:

Ext.getCmp(LIST_ID).container.fireEvent('itemtap', null, null, ITEM_INDEX,
    new Event('itemtap'));

运行这条线,itemtap事件ITEM_INDEXLIST_ID. 现在,当将我的框架更新到 sencha touch 2.1 时,这种方式不再起作用了......

他们是动态触发此事件的另一种方式吗?

4

2 回答 2

0

一个工作示例是

listobj.fireEvent('itemtap',listobj,indexofListInt);

一般来说,如果您有一个事件(在 st api 文档中)定义为: itemtap( this, index, target, record, e, eOpts )

要触发事件,您必须:

obj.fireEvent('eventname',this, index, target, record, e, eOpts )

'eventname' 之后的参数与事件签名的 api 文档中的顺序完全相同!

就是这样!

于 2013-04-18T09:33:59.270 回答
0

我使用这种语法:fireEvent('itemtap', index, node)。要获取节点对象,您应该使用getNode()getAt()

// For example, to tap the first item
// sencha 1.1
Ext.getCmp(LIST_ID).fireEvent('itemtap', 0, Ext.getCmp(LIST_ID).getNode(0)); 
// sencha 2.1
Ext.getCmp(LIST_ID).fireEvent('itemtap', 0, Ext.getCmp(LIST_ID).getAt(0)); 

问候

于 2013-03-06T09:58:38.163 回答