ExtJS 4.1.
Есть ли что-то вроде метода Ext.button.click();
в классе Ext.button?
Можно ли программировать кнопку "click" с помощью одного метода?
ExtJS 4.1.
Есть ли что-то вроде метода Ext.button.click();
в классе Ext.button?
Можно ли программировать кнопку "click" с помощью одного метода?
Или, если у вас есть структура MVC, вы можете запустить событие нажатия кнопки, и если вы слушаете событие в контроллере и имеете связанную с ним функцию, он будет вызван.
button.fireEvent('click', button);
Последний ответ на этом форуме может дать вам больше информации о том, как вы можете это сделать здесь они -
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
ExtJS 4.2.1
Ext.get('component-id-of-extjs-button').el.dom.click();
Ext.get('toggle-button2').el.dom.click();
работает для меня.
В случае кнопок с помощью обработчика вы можете напрямую вызвать функцию кнопки.
Учитывая, что button
является компонентом Ext JS, вы можете использовать:
button.handler(button);
или если вы хотите достичь функции события 'click':
button.listeners.click(button);
Это также будет работать для вызова различных событий кнопок.
Поскольку мне нужно было это для многих кнопок, было проще реализовать переопределение в классе кнопок, что добавляет функцию щелчка:
Ext.define('Ext.override.Button',{
override:'Ext.button.Button',
click:function() {
this.getEl().dom.click();
}
})
После того, как это переопределение было добавлено в базу кода, следующее работает как шарм:
Ext.getCmp("MyButton").click()
В отличие от fireEvent или fireHandler, это будет работать со всеми типами кнопок - независимо от того, имеют ли они событие щелчка или обработчик, или же они переключают кнопки, где нажатая кнопка также должна быть отмечена как нажатая.
Если вам нужно выполнить "обработчик" кнопки, просто запустите это (проверено с помощью ExtJS 4.2)
button.fireHandler()
Если вы хотите сделать это в своих тестовых сценариях, взгляните на мою библиотеку Ext.ux.Test. Если вам это нужно для чего-то другого, я бы предложил пересмотреть ваш подход.
Ни один из других ответов не работал у меня, но я нашел что-то более простое, я думаю:
var button=Ext.get('the_id_div');
button.dom.click();
document.getElementById("someButtonId").click();