要使用 Konva 取消事件冒泡传播,我们可以将 Event 对象的 cancelBubble
属性设置为 true。
说明:点击圆形可以观察到只有圆形事件绑定被处理,因为当触发圆形事件时事件传播被取消,从而防止事件对象向上传播。
Konva 取消传播演示view raw<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/konva@9.3.18/konva.min.js"></script> <meta charset="utf-8" /> <title>Konva Cancel Event Bubble Propagation 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 group = new Konva.Group();
var circle = new Konva.Circle({ x: stage.width() / 2, y: stage.height() / 2, radius: 70, fill: 'red', stroke: 'black', strokeWidth: 4, });
circle.on('click', function (evt) { alert('You clicked the circle!'); evt.cancelBubble = true; });
group.on('click', function () { alert('You clicked on the group!'); });
layer.on('click', function () { alert('You clicked on the layer!'); });
group.add(circle); layer.add(group);
stage.add(layer); </script> </body> </html>
|