17

ExtJS 4.1。

Ext.button.click();Ext.button 类上有类似方法吗?

是否可以使用一种方法以编程方式“单击”按钮?

4

9 回答 9

24

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

button.fireEvent('click', button);
于 2012-08-13T06:51:04.910 回答
10

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

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();

来自 - http://www.sencha.com/forum/showthread.php?37772-Solved-Programmatically-click-an-Ext.Button

于 2012-08-11T13:22:01.743 回答
6

ExtJS 4.2.1

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

为我工作。

于 2013-07-11T19:56:43.967 回答
2

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

考虑button是一个 Ext JS 组件,你可以使用:

   button.handler(button); 

或者如果你想达到事件“点击”的功能:

   button.listeners.click(button);

这也可以调用不同的按钮事件。

于 2013-06-29T09:16:43.637 回答
2

因为很多按钮都需要它,所以在按钮类上实现覆盖更容易,它添加了一个点击功能:

Ext.define('Ext.override.Button',{
    override:'Ext.button.Button',
    click:function() {
        this.getEl().dom.click();
    }
})

将此覆盖添加到代码库后,以下内容就像一个魅力:

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

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

于 2015-07-31T08:06:04.483 回答
1

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

button.fireHandler()
于 2014-07-10T20:11:25.723 回答
0

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

于 2012-08-11T18:25:21.427 回答
0

其他答案都不适合我,但我发现了一些我认为更简单的东西:

var button=Ext.get('the_id_div');
button.dom.click();
于 2015-06-08T06:38:55.210 回答
0
 document.getElementById("someButtonId").click(); 
于 2016-10-22T11:25:46.543 回答