有一个编辑器网格面板。
我正在尝试向单元格单击事件添加一个侦听器。我曾尝试做不同的方式:将监听器添加到编辑器网格面板
gridPanel.addListener('cellclick',myfunction);
网格内:
listeners: {
cellclick: myfunction
}
我试图做到这一点的对象selectionModel的。
他们都没有工作。
哪里可以解决问题?
有一个编辑器网格面板。
我正在尝试向单元格单击事件添加一个侦听器。我曾尝试做不同的方式:将监听器添加到编辑器网格面板
gridPanel.addListener('cellclick',myfunction);
网格内:
listeners: {
cellclick: myfunction
}
我试图做到这一点的对象selectionModel的。
他们都没有工作。
哪里可以解决问题?
如果您不能将侦听器添加为配置参数,那可能是因为您在回调函数中存在问题而不在作用域中,类似如下:
> var obj = { greetMe: this.sayHi, sayHi: function(){ console.log('hi'); }};
undefined
> obj.greetMe();
TypeError: Property 'greetMe' of object #<Object> is not a function
> obj.greetMe
undefined
在第一行中,this
仍然参照全局(读:窗口)对象在被定义的对象的时间。所以this.sayHi === window.sayHi === undefined
。当你定义Ext配置对象时会发生同样的事情。尝试定义回调在线:通过时间
> var obj = { greetMe: function(){ console.log('hi'); }};
undefined
> obj.greetMe()
hi
其他选项你的类方法应该被实例化
#3的工作。谢谢。 – lvil
addListener工作。我有一些语法错误。 仍将侦听器作为参数添加不起作用
对于行选择,我将它放在选择模型上并直接在网格上双击。这很好,但我必须警告你,如果你不阻止默认事件,你会得到可怕的内存消耗。
Ext.onReady(函数(){
requestGrid.getSelectionModel().on('rowselect', handleRowSelect);
requestGrid.on('rowdblclick', handleDoubleClick);
}
这将有助于如果我阅读:)我的解决方案是用于行选择的不是细胞的选择,但它很可能会工作。
我尝试了onReady函数,但它无法获取网格。我认为它是在加载html之后执行的,但在JavaScript之前执行。也许这不是问题,但它不管用。 – lvil
你使用哪个版本的extjs? – TheHorse
我的版本是extjs 3 – lvil
试听者:{'cellclick':function(){alert('a')},范围:this} – atian25