You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何调用event.composedPath()时出现'Uncaught TypeError'错误?

解决jQuery事件中调用event.composedPath()报错的问题

错误原因

你在jQuery事件回调里拿到的event是jQuery封装后的事件对象,并非浏览器原生的Event对象。composedPath()是原生Event对象的专属方法,jQuery封装的事件对象并未实现这个方法,因此调用时会抛出类型错误。

解决方法

jQuery提供了originalEvent属性,通过它可以获取到浏览器原生的事件对象,之后再调用composedPath()即可正常运行。修改后的代码如下:

$(window).on('click', function(event) {
    console.log(event.currentTarget);
    console.log(event.target);
    // 获取原生事件对象后调用composedPath
    event.originalEvent.composedPath().forEach((affected) => console.log(affected));
});

补充说明

jQuery封装事件对象的目的是实现跨浏览器兼容,将不同浏览器的原生事件API统一,但原生事件的部分新增方法(如composedPath())不会被纳入封装范围,这类场景下需要直接操作原生事件对象。

内容的提问来源于stack exchange,提问作者Rory Lynch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:48:14