如何在 two.js 中捕捉形状或组的点击事件?
How to capture a click event on a shape or group in two.js?
我使用 two.js 绘制了一个形状,我想编写代码来处理该形状上的点击事件。不是 canvas,而是形状本身。
front_left.domElement = $('#two-' + front_left.id)
.css('cursor', 'pointer')
.click(function(e){
alert("Hello World!");
});
这段代码 taken from an answer 看起来应该有效:
circle.domElement = $('#two-' + circle.id)
.css('cursor', 'pointer')
.click(function(e) {
circle.fill = getNonMainRandomColor(getRandomColor());
});
但它对我使用最新的 JQuery 和最新的 two.js 不起作用,而且它似乎也不适用于 the example,因为代码读取好像点击圆圈应该会改变颜色,但在我试过的任何浏览器或计算机上都没有任何反应。
那么,如何捕获和响应用 two.js 绘制的 shapes/groups 的点击事件?
感谢留言。这个答案不再有效的原因是 two.js 从那以后发生了变化。我添加了一个 example here。它的要点是:
- 使用
svg
渲染器
- 无论何时创建形状,它都会有一个私有 属性
_renderer
- 您可以访问
elem
对应的 dom 元素
- 但是!确保渲染器在您访问之前已经更新
例如:
var shape = two.makeCircle(two.width / 2, two.height / 2, 50);
two.update();
shape._renderer.elem.addEventListener('click', handler, false);
而且,如果您喜欢冒险,可以像 this example 中那样混合渲染器。
我使用 two.js 绘制了一个形状,我想编写代码来处理该形状上的点击事件。不是 canvas,而是形状本身。
front_left.domElement = $('#two-' + front_left.id)
.css('cursor', 'pointer')
.click(function(e){
alert("Hello World!");
});
这段代码 taken from an answer 看起来应该有效:
circle.domElement = $('#two-' + circle.id)
.css('cursor', 'pointer')
.click(function(e) {
circle.fill = getNonMainRandomColor(getRandomColor());
});
但它对我使用最新的 JQuery 和最新的 two.js 不起作用,而且它似乎也不适用于 the example,因为代码读取好像点击圆圈应该会改变颜色,但在我试过的任何浏览器或计算机上都没有任何反应。
那么,如何捕获和响应用 two.js 绘制的 shapes/groups 的点击事件?
感谢留言。这个答案不再有效的原因是 two.js 从那以后发生了变化。我添加了一个 example here。它的要点是:
- 使用
svg
渲染器 - 无论何时创建形状,它都会有一个私有 属性
_renderer
- 您可以访问
elem
对应的 dom 元素 - 但是!确保渲染器在您访问之前已经更新
例如:
var shape = two.makeCircle(two.width / 2, two.height / 2, 50);
two.update();
shape._renderer.elem.addEventListener('click', handler, false);
而且,如果您喜欢冒险,可以像 this example 中那样混合渲染器。