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));
Другие вопросы по тегам