Javascript 关于jQuery';s触发器和event.data?

Javascript 关于jQuery';s触发器和event.data?,javascript,jquery,events,triggers,click,Javascript,Jquery,Events,Triggers,Click,我无法使jQuery.trigger发送可通过单击处理程序中的event.data访问的数据 我想知道我是否从根本上理解了这些函数集是如何运行的 这是我的JS: $(document).ready(function() { $("#bb").click(function(event){ console.log(event.data); }); $("#bb").trigger("click", {key: "val"}); }); 这里是我的HTML: <

我无法使jQuery.trigger发送可通过单击处理程序中的event.data访问的数据

我想知道我是否从根本上理解了这些函数集是如何运行的

这是我的JS:

$(document).ready(function() {

    $("#bb").click(function(event){
      console.log(event.data);
    });

$("#bb").trigger("click", {key: "val"});

});
这里是我的HTML:

<button id="bb" value="click me">click me</button>
点击我
正如你所见,这很简单。我希望在控制台中看到的是{key:“val”},但我看到的是null

这是一个代码笔为您的实用程序


关于触发器上的jQuery文档,我有点困惑。它

请注意此处传递的额外参数与 .on()方法的eventData参数。这两种机制都是 将信息传递给事件处理程序,但外部参数 .trigger()的参数允许同时确定信息 事件被触发,而.on()的eventData参数需要 处理程序运行时要计算的信息 束缚

如何通过extraParameters参数访问传递给触发器的数据


Event.data是否可以访问通过on设置的eventData?回答我自己的问题,是的,基于对()的阅读

传递的第一个参数始终是
事件
,第二个参数是要发送的
数据
-您不能使用
.trigger()
更改
事件.数据

$(文档).ready(函数(){
$(“#bb”)。在('click',函数(事件,数据){
console.log(事件数据);
控制台日志(数据);
});
$(“#bb”).trigger('click',{key:'value'});
});


单击我
好吧,这看起来很有用,谢谢。您在()上而不是在click()上使用的这种情况是否有特定的原因?通过进一步阅读,我了解到Event.data是通过on()设置的静态数据,因此感谢您告诉我这一点。直接绑定到
.click()
.change()
等已被弃用(?),不再建议使用,因此,我倾向于在写答案时更正它,而不想太多。这可能是有意识地滥用了注释功能,但我坚持认为——我注意到你添加了一个脚本标记,我的笔似乎在使用jQuery时遇到了问题,尽管它是设置中的一个依赖项。手动添加依赖项是使用codePen的首选方式吗?我相信这只是在线编辑器获取外部库的标准方式,我假设是出于安全原因,等都做同样的事情-包括堆栈片段还有,我在第一条评论中对折旧的看法是错误的-读一读,它解释得更好(如果你感兴趣的话)