控制器的监听器捕捉来自其他视图的事件(面板点击)
Controller's listeners catching events (panel clicks) from other views
我在ExtJS 4.2.1中遇到了这个奇怪的问题。
我有一个控制器,它的监听器从视图捕获不应该捕获的事件。
这里是控制器:
Ext.define('Customer_Portal_UI.controller.NavigationMenu', {
extend: 'Ext.app.Controller',
init: function () {
this.control({
'panel': {
render: function (panel) {
panel.body.on('click', function (panel, e) {
alert('onclick');
});
}
}
});
}
});
它'控制'这个视图:
Ext.define('Customer_Portal_UI.view.NavigationMenu', {
extend: 'Ext.form.Panel',
alias: 'widget.navigationmenu',
region: 'west',
layout: 'fit',
ui: 'cssmenu',
loader: {
autoLoad: true,
url: '/resources/notloggedin.html'
}
});
但是它也从这个视图捕获面板点击:
Ext.define("Customer_Portal_UI.view.MainContent", {
extend: 'Ext.form.Panel',
alias: 'widget.maincontent',
region: 'center',
layout: 'card',
border: false,
activeItem: 0,
requires: ['Ext.grid.Panel'],
initComponent: function () {
this.items = [
{
xtype: 'panel',
title: ''
},
{
xtype: 'gridpanel',
id: 'contactlistgrid',
store: Ext.data.StoreManager.lookup('contactStore'),
columns: [
....
],
features: [{
ftype: 'grouping',
groupHeaderTpl: ['{columnName}: {name} - ({rows.length} employees)'],
hideGroupedHeader: true,
startCollapsed: false
}],
viewConfig: { id: 'contactlistgridview' }
},
{
xtype: 'gridpanel',
id: 'caselistgrid',
store: Ext.data.StoreManager.lookup('caseStore'),
columns: [
{ text: 'Title', dataIndex: 'title' },
{ text: 'Description', dataIndex: 'description' },
{ text: 'Ticket number', dataIndex: 'ticketnumber' }
],
viewConfig: { id: 'caselistgridview' }
}
]
this.callParent(arguments);
}
});
你能看出为什么它会这样做吗?panel
确实是我点击的面板,而不是文档主体,这可以解释为什么。
注意,这是在不捕获点击从其他面板,只是从MainContent
视图,它不应该…
谢谢。
修复方法如下所示:
http://www.fusioncube.net/index.php/sencha-extjs-4-make-any-component-fire-a-click-event/comment-page-1然后我就可以在我的控制器中监听'click' for 'panel'(视图中只有一个panel),而无需改进我的选择器
相关文章:
- 执行php函数的onclick事件的其他替代方案
- 单击其他元素时,我如何使用 jQuery 忽略更改事件
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 从其他元素上的单击事件访问image src属性
- Phonegap iOS-设备准备不发射其他事件做
- onbeforeunload事件在我的代码中没有触发,但其他示例可以工作
- 如何将单击事件绑定到其他类
- 停止内部事件处理程序冒泡的其他方法,jQuery
- 存在其他参数时访问Javascript事件
- 如何在不干扰网站其他部分的情况下,在画布上捕捉keydown事件
- Ajax 请求正在取消页面上的其他 JS 事件
- 可以使 jquery 点击事件在所有其他点击事件之后执行
- 捕获在Windows应用程序中启动其他应用程序的用户事件
- 如何使用cURL或其他方式在点击时执行事件
- 当其他事件发生时,用javascript隐藏的文本框将变为可见
- ext.js中还有其他事件我应该使用吗
- 将事件绑定到其他UI组件's函数,在Kendo MVVM中
- 更改时事件会触发其他事件
- 如何根据其他组件中的事件更新组件URL