0

我正在尝试将多个监听鼠标事件的事件监听器添加到单个元素,但只有一个事件被激活。当我有一个 'drag' 事件侦听器和一个 'mouseup' 事件侦听器时,只有拖动事件会执行,而当我将 'mouseup' 侦听器更改为侦听'click' 时,只会执行 click 事件。

事件侦听器是否存在某种层次结构?另外,我使用 Physi.js 块作为元素,所以我不确定是否有特殊要求,尽管过去单个事件侦听器工作得很好。

这是块:

block = new Physijs.ConvexMesh(
new THREE.CubeGeometry(16, 16, 11),
  new THREE.MeshBasicMaterial({
    map: THREE.ImageUtils.loadTexture(tier + '.png'),
    transparent: true
  })
);
scene.add(block);

这是带有事件侦听器的代码部分:

block.addEventListener('drag', function (event) {
  block.dragged(event.x_diff, event.y_diff);
  console.log("drag");
});
block.addEventListener('click', function (event) {
  console.log("click");
});

似乎无论我如何放置事件侦听器,或者它们是哪些鼠标事件,只有一个会执行。

我愿意接受任何类型的解决方案,只要它使用 Javascript、HTML 或 CSS。有没有办法将所有侦听器放在一个函数调用中,或者可能是一种适用于多个事件的不同类型的事件侦听器?

如果您需要任何其他代码或信息,请告诉我。

非常感谢您的参与!

4

0 回答 0