Я привожу данные из запроса POST на свой веб-сервис для создания динамического меню. Я хочу, чтобы система слышала событие щелчка каждого представления и определяла, что это такое. Но я не знаю, что происходит, потому что EventListener не добавляется ...Как добавить прослушиватели событий в цикле - Titanium Appcelerator
Мой код ниже:
getCategorias.onload = function() {
var json = this.responseText;
var response = JSON.parse(json);
for(var i = 0; i < response.length; i++) {
var containerAll = Ti.UI.createView({
width: "100%",
height: 130,
backgroundColor: "#000",
id: response[i].id
});
var viewImage = Ti.UI.createView({
backgroundImage: "http://www.iconomize.com.br/admin/"+response[i].foto,
backgroundColor: "#000",
opacity: "0.5",
width: "100%",
height: "100%",
top: "0"
});
var labelCat = Ti.UI.createLabel({
color: "#fff",
textAlign: "center",
width: "90%",
text: response[i].nome
});
containerAll.addEventListener('click', function(e){
alert(e.source.id);
});
containerAll.add(viewImage);
containerAll.add(labelCat);
$.listCategories.add(containerAll);
}
$.activityIndicator.hide();
};
Я думаю, что лучше всего добавить только слушателя в '. .listCategories' один раз и в функции функции прослушивателя с помощью' id' like '$ .listCategories.addEventListener ('click', function (e) { alert (e.source.id); }); ' – Swanand
Просто практическое замечание: не стоит помещать слушателей в цикл. Слушатели пассивны и не требуют динамического распределения. Мне нравится @Suraj идея добавления их в список, а затем их при необходимости. Если вам нужно удалить их, вы можете прокрутить список и применить 'removeListener()' итеративно. –