关于jQuery的触发器和event.data,我缺少什么?



我无法使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>

如您所见,这非常简单。我希望在控制台中看到的是{键:"val"},但我看到的是空。

这是您的实用程序的代码笔。 https://codepen.io/crowns/pen/ZEYxEEO?editors=1111


我对触发器上的jQuery文档感到困惑。它

请注意此处传递的额外参数与 事件数据参数到 .on(( 方法。两者都是 将信息传递给事件处理程序,但额外的参数 .trigger(( 的参数允许在当时确定信息 事件被触发,而 .on(( 的 eventData 参数需要 处理程序时已计算的信息 绑定。

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

事件数据设置是否可通过 Event.data 访问?回答我自己的问题,是的,基于阅读 on(( 的文档。

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

$(document).ready(function() {
$("#bb").on('click', function(event, data) {
console.log(event.data);
console.log(data);
});
$("#bb").trigger('click', {key: 'value'});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="bb" value="click me">click me</button>

最新更新