似乎无法对sencha触摸中的事件火做出响应
Cannot seem to respond to event fire in sencha touch
我试图在sencha touch中触发一个自定义事件,它似乎被添加到了可以触发的事件中,并且似乎被触发了,但我的侦听器似乎没有响应该事件。
事件在这里被实例化,这里是表单体:
Ext.apply(this, {
scroll: 'vertical',
dockedItems: [ titlebar, buttonbar ],
items: [ fields ],
listeners: {
beforeactivate: function() {
var saveButton = this.down('#userFormSaveButton');
saveButton.setText('Submit');
this.addEvents('cityUpdate');
console.log('event added');
},
deactivate: function() {
this.resetForm();
}
}
});
然后在此处触发事件:
if (result.data != 'false' && result.data.state) {
Ext.getCmp("usersForm").fireEvent('cityUpdate', result.data.towns);
console.log('event fired');
alert('Your town is ' + result.data.towns + ' ' + result.data.state.replace( /'+/g , ' ' ));
}
然后侦听器应用于以下形式的字段:
{
xtype: 'textfield',
name: 'city',
label: 'City*',
placeHolder: 'New York',
useClearIcon: true,
id:'city',
listeners: {
cityUpdate: function(city) {
console.log('event reponse' , this.fieldEl.dom , city);
}
}
},
有人能向我解释为什么我无法在控制台中看到事件响应调用吗?我看到添加了事件并触发了事件,但我似乎从未让事件真正运行事件响应的控制台语句。我在控制台中没有收到任何错误,所以我有点不知道这里发生了什么?
看起来表单正在触发事件,但您已将侦听器添加到表单上的文本字段中。
如果usersForm
是调用fireEvent
的,那么该事件的侦听器需要位于usersForm本身上。
如果在与beforeactivate
和deactivate
相同的块中,将cityUpdate
处理程序添加到第一段代码中,会发生什么?这能抓住事件吗?如果是这样,你没想到它会在那里被抓住吗?如果是这样的话,可能是一个轻微的设计问题。
相关文章:
- 在Javascript中的ajax响应之后未调用Dropdown事件
- Ember视图未响应用户启动的事件
- 如何使用更新图像源以响应新闻事件
- 为什么我没有得到对Comet服务器流事件的实时响应
- 基于类的单击事件在10行之后不响应-数据表
- EventSource 的响应具有非“文本/事件流”的 MIME 类型(“文本/纯文本”)
- 为什么不是't html<对象>元素响应鼠标事件
- jquery多个事件响应
- 使用命名函数设置多个事件响应
- 加载超链接页面后如何响应事件
- 响应菜单问题-如何在移动环境中处理HREF和onclick事件
- 尝试使用鼠标点击事件响应编写jQuery HTML5聊天框程序
- 使引导标记响应,jquery 事件丢失
- 节点 js 中的请求和响应事件如何彼此不同
- Jquery bind 事件没有响应
- 谷歌地图USGSO在同一级别标记上覆盖点击事件多响应
- Youtube iframe没有响应通过上图传递的指针事件的点击:none
- jQuery:点击禁用点击事件,直到ajax调用响应
- Gmaps API 从事件响应中丢失了 latlng
- 使用Jquery为循环中的元素添加事件响应器