2013-10-09 53 views
2

如何爲每個Kinetic.Rect創建一個點擊事件?Kinetic.js:每個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?

回答

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); 
//... 
+0

感謝您的評論綁定!我確實需要知道點擊了哪個矩形,我不認爲這是可能的。 – RobinvdA

+0

測試'e.target' – mikakun

+0

e.target是一個HTMLCanvasElement – RobinvdA