好的,所以在这里进行了一些挖掘,我希望我找到的解决方案是有用的。不过,我更希望有一种不那么自大的方法来做到这一点,并且有人可以指出这一点。
我试图弄清楚如何从轮播中的项目中获取委托点击事件的来源,而不是从列表或其他类似结构中获取 Sencha Touch 2 中内置的可传递参数;默认情况下,事件的范围是具有侦听器的容器。通过该函数传递的所有参数都与鼠标单击事件有关,而不是与源有关。请参阅下面的解决方案。
好的,所以在这里进行了一些挖掘,我希望我找到的解决方案是有用的。不过,我更希望有一种不那么自大的方法来做到这一点,并且有人可以指出这一点。
我试图弄清楚如何从轮播中的项目中获取委托点击事件的来源,而不是从列表或其他类似结构中获取 Sencha Touch 2 中内置的可传递参数;默认情况下,事件的范围是具有侦听器的容器。通过该函数传递的所有参数都与鼠标单击事件有关,而不是与源有关。请参阅下面的解决方案。
另一种方式
tap: function(list, index, target, record, e, eOpts){
var elm = Ext.get(e.target);
Ext.getCmp(elm.dom.id);
}
就像我说的,这是一个 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)
向我展示的东西发现了这一点。