Famo.us - Использование событий на поверхностях в цикле
У меня есть цикл, который создает поверхности из "TribesView" и направляет их в представление прокрутки, цикл также создает "ProductView" с модификатором и добавляет это в контекст. Я хочу привязать событие к поверхности "ProductView", где, если щелкнуть поверхность, установите непрозрачность "1". То, что у меня есть, только устанавливает непрозрачность последнего "ProductView" в массиве, независимо от того, какой "TribeView" был нажат. Вот код:
for (var t = 0; t < tribesLength; t++) {
var tribe = new TribesView({tribes: tribes, tribe: t});
var tribeProduct = new ProductView({tribes: tribes, tribe: t});
var productModifier = new StateModifier({
opacity: '0'
});
tribe.on('click', function() {
productModifier.setOpacity(1)
});
productContext.add(productModifier).add(tribeProduct);
tribe.pipe(scrollView);
surfaces.push(tribe);
}
1 ответ
Решение
Да, вы хотите связать productModifier с функцией. Когда вы связываете объект, он становится представленным как "это" внутри функции.
Вот как это должно быть сделано.. Удачи!
tribe.on('click', function() {
this.setOpacity(1);
}.bind(productModifier));