要获取 Konva 中的事件目标,我们可以访问事件对象的 target
属性。这在使用事件委托时尤其有用,在这种情况下,我们可以将事件处理程序绑定到父节点,并监听其子节点上发生的事件。
说明:点击星形,并观察层事件绑定是否正确识别被点击的形状。
Konva Event_Delegation Demoview raw<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/konva@9.3.18/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Event Delegation Demo</title> <style> body { margin: 0; padding: 0; overflow: hidden; background-color: #f0f0f0; } </style> </head>
<body> <div id="container"></div> <script> var stage = new Konva.Stage({ container: 'container', width: window.innerWidth, height: window.innerHeight, });
var layer = new Konva.Layer();
var star = new Konva.Star({ x: stage.width() / 2, y: stage.height() / 2, numPoints: 15, innerRadius: 40, outerRadius: 70, fill: 'blue', scale: { x: 2, y: 0.5, }, name: 'my star', });
layer.on('click', function (evt) { var shape = evt.target; alert('you clicked on "' + shape.name() + '"'); });
layer.add(star);
stage.add(layer); </script> </body> </html>
|