带数据的调度事件 [英] Dispatch event with data

查看:72
本文介绍了带数据的调度事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想发送一个事件,将一些数据传递给监听该事件的任何事件监听器。

I'd like to dispatch an event that will pass some data to any event listeners that listen on that event.

考虑一个触发事件的函数:

Considering a function that fires an event:

function click() {
  const x = 'foo'
  document.dispatchEvent(new CustomEvent('clicked'))
}

click()

如何我可以将自定义数据传递给事件监听器吗?

How can I pass custom data to the event listener?

document.addEventListener('clicked', function(e) {
  console.log(x) // logs "foo"
})


推荐答案

也许您正在寻找 event.detail

new CustomEvent('eventName', {'detail': data})

而不是数据使用x并在事件监听器中,您可以使用event.detail访问x

Instead of data use x and in event listener you can access x using event.detail

function getSelectionBounds() {
  var x = (bounds["x"].toFixed(2));
  var y = "xyz";
  var selectionFired = new CustomEvent("selectionFired", {
    "detail": {"x":x,"y":y }
  });

  document.dispatchEvent(selectionFired);
};

document.addEventListener("selectionFired", function (e) {
  alert(e.detail.x+"   "+e.detail.y);
});

这篇关于带数据的调度事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆