0

好的,所以在这里进行了一些挖掘,我希望我找到的解决方案是有用的。不过,我更希望有一种不那么自大的方法来做到这一点,并且有人可以指出这一点。

我试图弄清楚如何从轮播中的项目中获取委托点击事件的来源,而不是从列表或其他类似结构中获取 Sencha Touch 2 中内置的可传递参数;默认情况下,事件的范围是具有侦听器的容器。通过该函数传递的所有参数都与鼠标单击事件有关,而不是与源有关。请参阅下面的解决方案。

4

2 回答 2

2

另一种方式

tap: function(list, index, target, record, e, eOpts){
    var elm = Ext.get(e.target);
    Ext.getCmp(elm.dom.id);
}
于 2013-02-28T05:56:01.693 回答
0

就像我说的,这是一个 hacky 解决方案,如果有更好的东西会很棒,请在此处发布。无论如何,这是我使用的委托侦听器代码:

{
    element:    'element',
    delegate:   '.completed_button',
    event:      'tap',
    fn: function(element){
        var source_id = element.getTarget().id;
        Ext.getCmp(source_id);
    }
}

换句话说,传递 click 事件参数,获取它的目标,并获取该目标的 id。我通过窥探console.log(element)向我展示的东西发现了这一点。

于 2013-02-28T02:15:35.217 回答