2014-02-05 4 views
0

Я использую кинетические js и используя событие click, чтобы выделить элемент при нажатии. У меня проблема, когда событие не срабатывает до второго щелчка.Javascript click wont fire only after two clicks

function Canvas(){ 
    this.stage; 
    this.backgroundLayer; 
} 

Canvas.prototype.init = function(w, h){ 
    this.stage = new Kinetic.Stage({ 
    container: 'container', 
    width: w, 
    height: h 
    }); 

    this.backgroundLayer = new Kinetic.Layer(); 
    this.stage.add(this.backgroundLayer); 
    this.addLayerListeners(); 
} 

Canvas.prototype.addLayerListeners = function(){ 
    this.backgroundLayer.on('click',function(evt){ 
    var shape = evt.targetNode; 
    shape.stroke('#00ff00'); 
    shape.strokeWidth('5'); 
    }); 
} 

Это нормальное поведение? В противном случае, что я делаю неправильно?

+1

@GameAlchemist: В инсульте KineticJS() не на самом деле нарисовать удар. Он установит strokeStyle. Итак, Джорди просто устанавливает strokeStyle для последующих ничьих. :) – markE

ответ

1

Должно быть больше кода, чем я вижу. Например, в прослушивателе событий вы должны иметь shape.draw(), layer.draw() или stage.draw() где-то там.

Я использую подобный подход в OnClick (выберите) Функцию:

shape.setStroke('black'); 
shape.setStrokeWidth(4); 
shape.enableStroke(); 
shape.draw(); 

И в функции удалить инсульт (смешивань):

shape.disableStroke(); 
shape.draw();