Событие Fire click на кнопке по коду?

Достаточно просто, просто не могу заставить его работать и не вижу информации в документах. Как запустить событие нажатия на кнопку по коду?

Я пытался:

btn.fireEvent('click');

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


person Random    schedule 25.06.2013    source источник
comment
Вы пробовали данные решения?   -  person Muhammad Adnan    schedule 27.06.2013


Ответы (2)


вам нужно добавить EventListner, чтобы проверить, запускается ли событие щелчка или нет, см. код ниже, он запускается без нажатия кнопки. вы можете заменить прокомментированное условие if своим условием, при котором вы хотите запустить событие щелчка btn

 var win= Titanium.UI.createWindow({ backgroundColor:'white'});
        win.open();

    var btn= Titanium.UI.createButton({ title :' fire by code'});    
    btn.addEventListener('click',function(){
        alert('Click event fired ');
    });

    win.add(btn);
    //if(appState)
    btn.fireEvent('click');
person Muhammad Adnan    schedule 25.06.2013
comment
Спасибо за ответ, после использования вашего кода я заметил, что причина, по которой fireEvent не работает, заключается в том, что fireEvent, который я вызываю, представляет собой две функции, расположенные глубже исходного объявления кнопки. Я попытался добавить кнопку в Ti.App.Properties.setObject сразу после объявления кнопки, а затем получить объект в функции с областью действия. Все еще не работает, есть идеи? - person Random; 25.06.2013
comment
В идеале я хотел бы передать функцию прослушивания событий кнопок в Ti.App.Properties (не уверен в правильности типа данных), а затем вызвать свойство во вложенной функции... - person Random; 25.06.2013
comment
Боюсь, вы не можете сохранять объекты пользовательского интерфейса в Ti.App.Properties. Единственное, что вы можете сделать, это передать эту кнопку как свойство окна, а затем в этом окне вы можете сделать это с помощью win.btn.fireEvent('click'); - person Muhammad Adnan; 26.06.2013

Я бы, наверное, подошел к этому по-другому. Вы хотите, чтобы приложение делало то же самое, если кнопка нажата или если приложение уже находится в определенном состоянии.

function doThisThing(){
  alert('This thing happened');
}

var win = Titanium.UI.createWindow({ backgroundColor:'white'});
win.open();

var btn = Titanium.UI.createButton({ title :' fire by code'});    
btn.addEventListener('click',function(){
  doThisThing();
});

// could also be defined as btn.addEventListener('click', doThisThing());

win.add(btn);

//if(appState)
doThisThing();

+1 Аднану за предоставленный пример кода для изменения.

person Martin    schedule 26.06.2013