Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将事件传递给同级html元素_Javascript_Jquery_Three.js - Fatal编程技术网

Javascript 将事件传递给同级html元素

Javascript 将事件传递给同级html元素,javascript,jquery,three.js,Javascript,Jquery,Three.js,我创建了一个有三个.js的应用程序,其中有两个渲染器(一个画布和一个div(css渲染器))。 css渲染器位于画布的顶部,我想将任何类型的事件传递给后面的画布元素。到目前为止,我未能创建一个调度程序 到目前为止,我所尝试的: (一) (二) 在案例2中,我得到以下错误: 未捕获的InvalidStateError:未能在上执行“dispatchEvent” “EventTarget”:事件已被调度 我还试图复制对象或在超时后传递它,但似乎没有任何效果。 我没有做过类似的事情,所以我需要一些帮助

我创建了一个有三个.js的应用程序,其中有两个渲染器(一个画布和一个div(css渲染器))。 css渲染器位于画布的顶部,我想将任何类型的事件传递给后面的画布元素。到目前为止,我未能创建一个调度程序

到目前为止,我所尝试的:

(一)

(二)

在案例2中,我得到以下错误:

未捕获的InvalidStateError:未能在上执行“dispatchEvent” “EventTarget”:事件已被调度

我还试图复制对象或在超时后传递它,但似乎没有任何效果。
我没有做过类似的事情,所以我需要一些帮助或指导。

您不能只将
事件
传递给触发器函数,因为事件是一个对象,触发器需要一个字符串作为参数

请尝试传递
事件。改为键入

$(that.renderer.domElement).trigger(event.type);

(或)


要同时传递鼠标坐标,我要传递一个对象(鼠标)和事件类型。

仅传递类型不够好,鼠标坐标也必须是passed@Syd你需要相对于窗户的坐标吗,还是第一个元素?在我的例子中没有太大区别,因为这两个元素一直都是窗口大小的time@Syd好吧,我的答案满足你的所有需要。如果你想要一个更好的解释,或者更多的功能,只要问问。为什么不删除StopRopAgation并让它继续传播呢?您只需要CSSRender是设置画布的元素的子元素(或子元素),我已经尝试将dispatchEvent调用放入setTimeout,它可以防止该错误。但由于某些原因,它似乎没有恰当地安排这次活动。它的父节点获取了事件,但我分派到的节点没有获取该事件。
$(this.cssRenderer.domElement).on("click mousedown mouseup mousemove focus blur keydown keyup change touchstart touchend touchmove", function ( event ) {

    event.preventDefault();
    event.stopImmediatePropagation();

    that.renderer.domElement.dispatchEvent(event.originalEvent);

});
$(that.renderer.domElement).trigger(event.type);