点击两次后,Javascript点击不会触发

时间:2014-02-05 16:27:16

标签: javascript html5 canvas kineticjs

我正在使用动力学js并使用单击事件来突出显示单击时的元素。我有一个问题,即在第二次点击之前事件不会触发。

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 个答案:

答案 0 :(得分:1)

必须有比我看到的代码更多的代码。 例如,在事件监听器中,你必须在某处有一个shape.draw(),layer.draw()或stage.draw()。

我在onclick(select)函数中使用了类似的方法:

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

在删除笔划(取消选择)功能中:

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