Мне удалось динамически создать массив фигур, и они хорошо расположены в разных координатах.KineticJS - динамически создавать массив фигур и использовать события
Однако, когда я пытаюсь назначить событие в этом цикле, результат клика всегда один и тот же. Как будто событие click по-прежнему ссылается на последнюю итерацию моего цикла.
Что я делаю неправильно? Благодаря!
EDIT: На самом деле, вновь произвел такое поведение в изолированной среде:
var stage = new Kinetic.Stage({
container: 'container',
width: 1024,
height: 768
});
var layer = new Kinetic.Layer();
singleSegment=40;
for (var i = 0; i < 4; i++) {
depth=singleSegment+(singleSegment*i);
dotLabel = new Kinetic.Text({
x: depth,
y: depth,
text: "test"
});
dotLabel.on('click', function(evt){
console.log(this.x);
});
layer.add(dotLabel);
}
stage.add(layer);
Как добавить различные события в этих четырех наклейками?
Я не лучший человек, чтобы объяснить закрытие javascript, но с удачей, возможно, кто-то другой может. В противном случае вам придется искать в Google –
@ JaniHyytiäinen, похоже, что это проблема с областью. Но я не понимаю, что именно не так. Я сделал код выше, поэтому его можно протестировать в любом месте. –