将事件传递给同级 html 元素
Pass event to a sibling html element
我创建了一个包含三个.js的应用程序,其中有 2 个渲染器(1 个画布和 1 个div(css 渲染器))。css 渲染器位于画布顶部,我想将任何类型的事件传递给后面的 canvas 元素。到目前为止,我未能创建调度程序...
到目前为止我尝试过:
1)
// on top element css renderer
$(this.cssRenderer.domElement).on("click mousedown mouseup mousemove focus blur keydown keyup change touchstart touchend touchmove", function ( event ) {
event.preventDefault();
event.stopImmediatePropagation();
//canvas background domelement
$(that.renderer.domElement).trigger(event);
});
2)
$(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);
});
在情况2中,我收到以下错误:
未捕获的无效状态错误:无法在 上执行"调度事件" "事件目标":事件已在调度中。
我还尝试复制对象或在一段时间后传递它,但似乎没有任何效果。我没有做过类似的事情,所以我需要一点帮助或一些指导。
你不能
只event
传递给触发器函数,因为事件是一个对象,触发器需要一个字符串作为参数。
相反,请尝试传递event.type
:
$(that.renderer.domElement).trigger(event.type);
在这里阅读。
JSFiddle(或使用鼠标坐标)
为了传递鼠标坐标,我正在传递一个对象(鼠标)以及事件类型。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素