要将多个事件绑定到一个处理程序,我们可以使用 on()
方法,并传入一个由空格分隔的字符串,包含多个事件类型。
shape.on('mouseover mousedown mouseup', function (e) { console.log('事件: ' + e.type); });
|
说明:在圆形上进行鼠标悬停、鼠标按下和鼠标抬起,以观察绑定到圆形的函数为每个事件执行。
Konva Multi_Event 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 Multi-Event Binding Demo</title> <style> body { margin: 0; padding: 0; overflow: hidden; background-color: #f0f0f0; } </style> </head>
<body> <div id="container"></div> <script> function writeMessage(message) { text.text(message); }
var stage = new Konva.Stage({ container: 'container', width: window.innerWidth, height: window.innerHeight, });
var layer = new Konva.Layer();
var text = new Konva.Text({ x: 10, y: 10, fontFamily: 'Calibri', fontSize: 20, text: '', fill: 'black', });
var numEvents = 0;
var circle = new Konva.Circle({ x: stage.width() / 2, y: stage.height() / 2 + 10, radius: 70, fill: 'red', stroke: 'black', strokeWidth: 4, });
circle.on('mouseover mousedown mouseup', function () { writeMessage('Multi-event binding! Events: ' + ++numEvents); }); circle.on('mouseout', function () { writeMessage(''); });
layer.add(circle); layer.add(text);
stage.add(layer); </script> </body> </html>
|