Events 获取委托的tap事件的源

Events 获取委托的tap事件的源,events,sencha-touch-2,Events,Sencha Touch 2,好吧,这里需要一些挖掘,我希望我找到的解决方案是有用的。不过,我更希望有一种不那么夸张的方法来做到这一点,有人可以指出这一点 我试图弄清楚如何从旋转木马中的项目中获取委托点击事件的源,而不是Sencha Touch 2中具有内置可通过参数的列表或其他类似结构;默认情况下,事件的范围是包含侦听器的容器。通过函数传递的所有参数都与鼠标单击事件相关,而不是与源相关。我的解决方案见下文。正如我所说,这是一个黑客解决方案,如果有更好的解决方案,那就太棒了,请在这里发布。无论如何,这是我使用的委托侦听器代码

好吧,这里需要一些挖掘,我希望我找到的解决方案是有用的。不过,我更希望有一种不那么夸张的方法来做到这一点,有人可以指出这一点


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

正如我所说,这是一个黑客解决方案,如果有更好的解决方案,那就太棒了,请在这里发布。无论如何,这是我使用的委托侦听器代码:

{
    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)
向我展示的内容找到了这一点。

还有一种方法

tap: function(list, index, target, record, e, eOpts){
    var elm = Ext.get(e.target);
    Ext.getCmp(elm.dom.id);
}

美好的这里的背景是什么?我猜它应该在Ext.getCmp('item')上。在({})操作上?您甚至可以通过elm.dom.className等获得想要/更改的元素类名和其他html属性