Javascript 在ExtJS 4中使用单击处理程序调用函数
我在工具栏中有一个函数,我们称之为:Javascript 在ExtJS 4中使用单击处理程序调用函数,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我在工具栏中有一个函数,我们称之为: Ext.define('MyArchive.Toolbar', { search: function() { console.log('searching'); } } 现在我想在单击按钮时调用此函数。因此,我在工具栏设置的afterRender中添加了一些单击处理程序: afterRender: function() { Ext.getCmp('search-button').on('click', this.search); }
Ext.define('MyArchive.Toolbar', {
search: function() {
console.log('searching');
}
}
现在我想在单击按钮时调用此函数。因此,我在工具栏设置的afterRender中添加了一些单击处理程序:
afterRender: function() {
Ext.getCmp('search-button').on('click', this.search);
}
但是,这不起作用,我最终需要走完整的路线:
afterRender: function() {
Ext.getCmp('search-button').on('click', function() {
quick_search();
)};
}
我的第一次尝试没有像我预期的那样应用click处理程序,有什么特别的原因吗
感谢您的解释或重构!欢迎使用其他模式/习惯用法…下次尝试:
var panelOverall = new Ext.form.FormPanel({
html: 'bla',
search: function() {
console.log('searching');
},
buttons: [
{
text: 'Moo',
id: 'button1',
handler: function(){
//window.destroy();
}
}
],
afterRender: function() {
Ext.getCmp('button1').on('click', this.search);
}
});
他在为我工作。。我遗漏了什么吗?下一次尝试:
var panelOverall = new Ext.form.FormPanel({
html: 'bla',
search: function() {
console.log('searching');
},
buttons: [
{
text: 'Moo',
id: 'button1',
handler: function(){
//window.destroy();
}
}
],
afterRender: function() {
Ext.getCmp('button1').on('click', this.search);
}
});
他在为我工作。。我遗漏了什么吗?我们需要看更多的代码。例如,您到底在哪里调用
xt.getCmp('search-button')。on…
?顺便说一句:Ext.getCmp()
虽然看似简单,但并不是获取对象的最佳方式。过于依赖它会使改变变得更加困难。我对这个问题加了一句赞扬的话。对于查找访问所需属性的组件,除了Ext.getCmp()之外,最好的替代方法是什么?有什么我应该遵循的模式或习惯用法吗?你能删除多余的dort吗?^^Ext.getCmp('search-button')。on.(变成Ext.getCmp('search-button')。on(抱歉,拼写错误已经被修复…在这种情况下,jsfiddle.net可能有助于直接显示代码。假设它支持ExtJS。我们需要查看更多代码。例如,您在哪里调用xt.getCmp('search-button')。on…
?顺便说一句:Ext.getCmp()
虽然看似简单,但这并不是获取对象的最佳方式。过于依赖它会使更改更加困难。我在问题中添加了一个建议。什么是Ext.getCmp()的最佳替代方案查找组件以访问我需要的属性?我应该遵循的任何模式或习惯用法?您可以删除额外的dort吗?^^Ext.getCmp('search-button')。on.(变为Ext.getCmp('search-button')。on(抱歉,拼写错误已经修复…在本例中,jsfiddle.net可能有助于直接显示代码。假设它支持ExtJS。这是一个很好的问题,我们的代码看起来完全相同。我们正在使用Jasmine()进行测试。)我们的规范与上面的不一致。但我会再看一看。也许我们需要用新的眼光来看待它。但似乎除非我们将点击处理程序的第二个参数包装为一个函数,否则我们无法按预期启动搜索函数。我将跟踪我的结果……这是一个很好的问题,我们的代码看起来一模一样。我们正在测试茉莉花()我们的规范与上面的不一致。但我会再看一看。也许我们需要用新的眼光来看待它。但似乎除非我们包装单击处理程序的第二个参数是一个函数,否则我们无法按预期启动搜索函数。我会跟进我的结果。。。