我在一些源代码(几天前)中看到一个程序在面板上发生了dblclick
事件或类似事件。
如果您查看文档
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.panel.Panel
在活动中,没有点击的活动。
我想我看到了像
这样的东西ondblclick
然后
fn: function(){...}
为什么它不在文档中?如何在面板上触发dblclick
事件?
答案 0 :(得分:2)
以下示例将起作用。 double click event 会被 Ext.Element 触发,可以在从面板的正文参数渲染后获取。在示例中,我覆盖了 afterRender 方法,因为无需为此注册事件。在那里,我向当前面板的Ext.Element注册了一个监听器。
Ext.define('Ext.ux.panel.DCPanel', {
extend: 'Ext.panel.Panel',
alias: 'widget.dcpanel',
initComponent: function() {
this.callParent(arguments);
},
afterRender: function() {
var me = this;
me.body.on('dblclick', function() { alert('hit'); }, me);
me.callParent();
}
});
Ext.create('Ext.ux.panel.DCPanel', {
width: 300,
height: 300,
title: 'Demo',
html: 'this is my data',
renderTo: Ext.getBody()
});
答案 1 :(得分:2)
除了@sra回答之外,我会说在分配监听器时可以使用Component
选项将处理程序分配给element
的dom:
var panel = Ext.create('Ext.panel.Panel', {
// ...
listeners: {
dblclick: function() {
// handle event
},
element: 'body'
}
});