Extjs Ext.button click()方法

Extjs Ext.button click()方法,extjs,extjs4.1,Extjs,Extjs4.1,extjs4.1. 是否有类似于Ext.button.click()的内容方法 可以用一种方法通过编程“点击”按钮吗?本论坛上的最后一个答案可能会让你更深入地了解如何做到这一点 给你- 1)Create the event code in a function and call the function from both sides: btn.on("clic", ...) and from the code you want to simulate the click. 2)Use: bt

extjs4.1.

是否有类似于
Ext.button.click()的内容方法


可以用一种方法通过编程“点击”按钮吗?

本论坛上的最后一个答案可能会让你更深入地了解如何做到这一点 给你-

1)Create the event code in a function and call the function from both sides: btn.on("clic", ...) and from the code you want to simulate the click.

2)Use: btnView.btnEl.dom.click();
从-

如果要在测试脚本中执行此操作,请查看我的。如果您需要它来做其他事情,我建议您重新考虑您的方法。

或者如果您有MVC结构,您可以触发按钮的单击事件,如果您正在控制器中侦听该事件,并且有一个关联的函数,它将被调用

button.fireEvent('click', button);

如果按钮使用handler,可以直接调用button的函数

考虑到
按钮
是一个Ext JS组件,您可以使用:

   button.handler(button); 
或者,如果您想达到“单击”事件的功能:

   button.listeners.click(button);
这也可以用来调用不同的按钮事件。

extjs4.2.1

Ext.get('component-id-of-extjs-button').el.dom.click();
Ext.get('toggle-button2').el.dom.click();

适合我。

如果需要执行按钮的“处理程序”,只需运行它(使用ExtJS 4.2测试)


其他答案都不适用于我,但我发现了一些更简单的问题,我认为:

var button=Ext.get('the_id_div');
button.dom.click();

由于许多按钮都需要它,因此更容易在button类上实现重写,它添加了一个click函数:

Ext.define('Ext.override.Button',{
    override:'Ext.button.Button',
    click:function() {
        this.getEl().dom.click();
    }
})
将此覆盖添加到代码库后,以下操作将非常有效:

Ext.getCmp("MyButton").click()

与fireEvent或fireHandler不同,这将适用于所有类型的按钮-无论它们是否有单击事件或处理程序,或者它们是否是切换按钮,其中单击的按钮必须标记为按下。

如果这是一个愚蠢的问题,很抱歉,但您确定使用的是ExtJS 1.1吗?只是ExtJS2现在很长一段时间都不受支持,所以使用1.1似乎很奇怪;真不敢相信这样一个受欢迎的活动不是这个框架的一部分!最后是笨拙的
按钮.getEl().dom.click()
不要认为你链接的sencha论坛帖子是真实的(2008年)。但是在DOM元素上调用
click()
的想法很好!什么是
dom.click()?它是从哪里来的?当您使用处理程序而不是单击侦听器时,您将无法在此组件上启动fireEvent(“单击”),事件将不会执行。因此,最好的方法不是使用handler,而是使用click listener+
button.firevent('click')
模拟
点击
。没错。在我看来,使用监听器总是“更干净”的。仅供参考,出于某种原因,这不会触发处理程序方法。如果该处理程序方法是按钮配置的一部分,则当按钮被禁用时,是否仍会引发click事件?因为这将迫使您测试禁用的属性以启动关联的函数…它仍然会被触发是的。
 document.getElementById("someButtonId").click(); 
 document.getElementById("someButtonId").click();