Задействане на събитие за щракване върху бутон по код?

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

Опитах:

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
Страхувам се, че не можете да запазите UI обекти в 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 към adnan за предоставяне на примерен код за промяна.

person Martin    schedule 26.06.2013