Я не могу заставить 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.
Вот кодовая ручка для вашей утилиты. https://codepen.io/crowns/pen/ZEYxEEO?editors=1111
У меня есть путаница в документации jQuery по триггеру. Это
Обратите внимание на разницу между дополнительными параметрами, передаваемыми здесь, и параметром eventData для метода .on (). Оба являются механизмами для передачи информации в обработчик событий, но аргумент extraParameters для .trigger () позволяет определять информацию во время запуска события, в то время как аргумент eventData для .on () требует, чтобы информация уже вычислялась в время, когда обработчик привязан.
Как получить доступ к данным, передаваемым для запуска с помощью аргумента extraParameters?
И доступна ли EventData через on через Event.data? Чтобы ответить на мой собственный вопрос, да, основываясь на прочтении документации для on ().