Передача аргументов в аддевентлистенер в титане - PullRequest
0 голосов
/ 25 июня 2011

Мне требуется передать аргументы в обработчик обратного вызова addEventListener. Я пробовал это , но оно не работает в для цикла. Вот мой код:

var view = Ti.UI.createView({
    //configuration here.
});
for(var i=0,ilen=response.length; i<ilen; i++){
    var thisObj = response[i];
    var btnCareer = Ti.UI.createButton({
        //configuration here
    });

    var careerID = thisObj.CareerID;
    btnCareer.addEventListener('click', function(){ 
                                                            bh.logic.career.CareerClick(careerID);
                                    });
    view.add(btnCareer);
}

Что я получаю, так это последнее значение.

Есть ли способ?

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Не видя, какой ответ [] содержит, и если careerID должен быть линейным и т. Д., Цель следующего кода состоит в том, чтобы предложить добавить careerID в качестве фактического id свойства кнопки; что-то, на что можно ссылаться.

Я также не знаю, для какой платформы вы разрабатываете ;-), так что, приведите следующее, и если ничего не помогает, проверьте:

API кнопки, нажав здесь

НТН !!

var view = Ti.UI.createView({
    //configure the view here.
});

for(var i=0,ilen=response.length; i<ilen; i++){
    var thisObj = response[i];
    var careerID = thisObj.CareerID;
    var btnCareer = Ti.UI.createButton({
        //configuration here
        id:careerID // THIS GIVES THIS BUTTON AN ID TO MAP BY EVENT LISTENER ONCLICK
    });
    btnCareer.addEventListener('click', function(e){
        if ( e.source.id !== null ) {  // Be good and check for null values
            var careerIDValue = e.source.id;
            /* e is this function, source looks at id value for the button you just
             * created as it attaches the eventListener to the most current button
             * object and keeps the button unique because you've given it an id: blah
             * value that can be sussed out
             */ 
            bh.logic.career.CareerClick(careerIDValue);
        } else {
            alert('NULL ID FOUND!  ARGH! ' + e.source.id);
        }
    });
    view.add(btnCareer);
}
0 голосов
/ 25 июня 2011

Я наконец получил ответ здесь . По сути, я должен помнить, что javascript - это слабо связанный язык.

...