jQuery 的触发器和 event.data 我错过了什么?
What am I missing about jQuery's trigger and 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>
如您所见,它非常简单。我希望在控制台中看到的是 {key: "val"},但我看到的是空值。
这是您的实用程序的代码笔。 https://codepen.io/crowns/pen/ZEYxEEO?editors=1111
我对有关触发器的 jQuery 文档有一点困惑。它
Note the difference between the extra parameters passed here and the
eventData parameter to the .on() method. Both are mechanisms for
passing information to an event handler, but the extraParameters
argument to .trigger() allows information to be determined at the time
the event is triggered, while the eventData argument to .on() requires
the information to be already computed at the time the handler is
bound.
应该如何访问通过 extraParameters 参数传递给触发器的数据?
Event.data 是否可以访问通过 on 设置的 eventData?回答我自己的问题,是的,基于对 on() 的阅读 documentation。
传递的第一个参数始终是 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>
我无法使 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"},但我看到的是空值。
这是您的实用程序的代码笔。 https://codepen.io/crowns/pen/ZEYxEEO?editors=1111
我对有关触发器的 jQuery 文档有一点困惑。它
Note the difference between the extra parameters passed here and the eventData parameter to the .on() method. Both are mechanisms for passing information to an event handler, but the extraParameters argument to .trigger() allows information to be determined at the time the event is triggered, while the eventData argument to .on() requires the information to be already computed at the time the handler is bound.
应该如何访问通过 extraParameters 参数传递给触发器的数据?
Event.data 是否可以访问通过 on 设置的 eventData?回答我自己的问题,是的,基于对 on() 的阅读 documentation。
传递的第一个参数始终是 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>