我正在尝试将其他数据传递到我的CustomEvent
,以便其他项目可以加入其中并根据其中的内容创建逻辑。这是我所拥有的:
$(window).on('contentRemoved', (event) => {
console.log(event.some_data);
});
$('#trigger').on('click', () => {
const contentRemovedEvent = new CustomEvent('contentRemoved', {
'some_data': 1
});
window.dispatchEvent(contentRemovedEvent);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="trigger">Click me</button>
...但是它返回为未定义。我在做什么错了?
答案 0 :(得分:5)
您必须使用detail
键传递一个对象:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events#Event_bubbling
要向事件对象添加更多数据,必须存在CustomEvent接口 并且detail属性可用于传递自定义数据。
您传递给CustomEvent
的第二个参数就像一个options
对象,您可以在其中指定data
和bubbles
..,check the list of possible properties {{ 1}}进入data
键
detail
$(window).on('contentRemoved', (event) => {
console.log(event.detail);
});
$('#trigger').on('click', () => {
const contentRemovedEvent = new CustomEvent('contentRemoved', {
detail : { 'some_data': 1 }
});
window.dispatchEvent(contentRemovedEvent);
});