2

如何为组中的每个 Kinetic.Rect 创建一个点击事件?

假设我有这个:

var bar1 = new Kinetic.Rect({
      x: 0,
      y: 100,
      width: 400,
      height: 10,
      fill: 'grey',
      stroke: 'black',
      strokeWidth: 2
});

var bar2 = new Kinetic.Rect({
      x: 0,
      y: 100,
      width: 400,
      height: 10,
      fill: 'grey',
      stroke: 'black',
      strokeWidth: 2
});

有没有办法让两个栏都有相同的点击事件?可能使用 jQuery 吗?

4

1 回答 1

2

您可以创建一个var layer = new Kinetic.Layer();并将您的条添加到它,然后将图层绑定到.on

layer.add(bar1);
layer.add(bar2);
//...
layer.on('click',function(e) {
          //...
          //bar1/bar2 is e.targetNode 

http://konvajs.github.io/docs/events/Multi_Event.html

否则

function handleClick(e) {
       //..
       //bar1/bar2 is e.target
         }

bar1.on("click",handleClick);
bar2.on("click",handleClick);
//...
于 2013-10-09T10:23:01.493 回答