Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 CustomEvent详细信息_Javascript_Jquery_Jquery Events - Fatal编程技术网

未传递Javascript CustomEvent详细信息

未传递Javascript CustomEvent详细信息,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我正在尝试创建一个自定义Javascript事件。事件正常工作并激发,但我传递给它的“detail”对象不可用 下面是我用来创建和分派事件的代码: var double_tap = new CustomEvent("doubleTap", { detail: { hello: 'world' }, bubbles: true, cancelable: true }); this.dispatchEvent(double_t

我正在尝试创建一个自定义Javascript事件。事件正常工作并激发,但我传递给它的“detail”对象不可用

下面是我用来创建和分派事件的代码:

var double_tap = new CustomEvent("doubleTap", {
    detail: {
        hello: 'world'  
    },
    bubbles: true,
    cancelable: true
});

this.dispatchEvent(double_tap);
然后我使用jQuery向主体添加事件侦听器:

$('body').on('doubleTap', function( e ) { 
    console.log(e);
});
它确实会触发,控制台日志也会发生,但不幸的是,日志只输出事件详细信息,包括气泡和可取消属性,而从不输出“detail”对象,因此无法访问信息

这里有一个jsbin示例,我在主体的click事件上创建事件,以便您可以看到控制台


我希望能够在触发事件时从“detail”对象获取数据。我做错了什么?我已经在Chrome和iOS上的Safari中对此进行了测试。

有关详细信息,您需要访问OriginaleEvent属性

console.log(e.originalEvent.detail);

我发现以下问题:

此修复位于jQuery的
compat
分支中,应该从jQuery 3.0开始修复

obj.addEventListener("eventName", function(e) {
console.log(e.your_property)
})

var event = new CustomEvent("eventName");
event.your_property = { key: "value" };

obj.dispatchEvent(event);

当您发送CustomEvent时,您可以在CustomEvent中创建属性。

非常简单,但在我找到的解释CustomEvent方法的文档中,没有一个指出这一点。非常感谢。这实际上不是CustomEvent问题,我相信jQuery会将DOM事件包装到自己的事件对象中。。(我不是jQuery专家,所以我可能错了)如果希望将所有代码都保存在jQuery领域中,还可以向jQuery处理程序添加数据参数<代码>$('body')。关于('doubleTap',函数(e,arg1,arg2)很有趣,谢谢。我不会使用jQuery。我只是出于测试的方便而使用它。element.addEventListener会做得很好!有用的信息!谢谢!我浪费了3个小时处理这个问题!这是金子!:-)太好了!它正在工作。但我不知道为什么event.detail不起作用,也就是说,当我们详细地传递对象时,在侦听器中找不到它。