Метод click() - программирование

Метод click()

ExtJS 4.1.

Есть ли что-то вроде метода Ext.button.click(); в классе Ext.button?

Можно ли программировать кнопку "click" с помощью одного метода?

4b9b3361

Ответ 1

Или, если у вас есть структура MVC, вы можете запустить событие нажатия кнопки, и если вы слушаете событие в контроллере и имеете связанную с ним функцию, он будет вызван.

button.fireEvent('click', button);

Ответ 2

Последний ответ на этом форуме может дать вам больше информации о том, как вы можете это сделать здесь они -

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

Ответ 3

ExtJS 4.2.1

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

работает для меня.

Ответ 4

В случае кнопок с помощью обработчика вы можете напрямую вызвать функцию кнопки.

Учитывая, что button является компонентом Ext JS, вы можете использовать:

   button.handler(button); 

или если вы хотите достичь функции события 'click':

   button.listeners.click(button);

Это также будет работать для вызова различных событий кнопок.

Ответ 5

Поскольку мне нужно было это для многих кнопок, было проще реализовать переопределение в классе кнопок, что добавляет функцию щелчка:

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

После того, как это переопределение было добавлено в базу кода, следующее работает как шарм:

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

В отличие от fireEvent или fireHandler, это будет работать со всеми типами кнопок - независимо от того, имеют ли они событие щелчка или обработчик, или же они переключают кнопки, где нажатая кнопка также должна быть отмечена как нажатая.

Ответ 6

Если вам нужно выполнить "обработчик" кнопки, просто запустите это (проверено с помощью ExtJS 4.2)

button.fireHandler()

Ответ 7

Если вы хотите сделать это в своих тестовых сценариях, взгляните на мою библиотеку Ext.ux.Test. Если вам это нужно для чего-то другого, я бы предложил пересмотреть ваш подход.

Ответ 8

Ни один из других ответов не работал у меня, но я нашел что-то более простое, я думаю:

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

Ответ 9

 document.getElementById("someButtonId").click();