Javascript:使用自定义参数声明自定义事件
我正在编写一个Javascript Web应用程序,我想在按下控制器按钮时发送一个自定义事件。该事件应具有自定义参数:event.index、event.player2和event.button。但是,它们都没有在结果事件中定义。这就是我迄今为止所尝试的: 我首先宣布这一事件如下:Javascript:使用自定义参数声明自定义事件,javascript,Javascript,我正在编写一个Javascript Web应用程序,我想在按下控制器按钮时发送一个自定义事件。该事件应具有自定义参数:event.index、event.player2和event.button。但是,它们都没有在结果事件中定义。这就是我迄今为止所尝试的: 我首先宣布这一事件如下: var testEvent = new Event('controllerPress', { index: 0, player2: false, button: 12 }); 在这不起作用之后,我在网上
var testEvent = new Event('controllerPress', {
index: 0,
player2: false,
button: 12
});
在这不起作用之后,我在网上查阅了一些Q&A(如),并重新宣布了该活动
var testEvent = new Event('controllerPress', {
detail: {
index: 0,
player2: false,
button: 12
}
});
…但没有用。我再次查看并将声明更改为使用CustomEvent
var testEvent = new CustomEvent('controllerPress', {
detail: {
index: 0,
player2: false,
button: 12
}
});
…但是testEvent.index
仍然未定义。我错过了什么
编辑:这不是的副本,因为它询问如何创建自定义事件,但询问如何向该自定义事件添加自定义属性。显然,没有办法做到这一点。JS提供的最佳解决方案是:
var event = new CustomEvent('PutYourEventNameHere', {
detail: { // filled with sample values
index: 0,
player2: false,
button: 1
}
});
但这不会像您预期的那样设置属性
event.index
>>> undefined
event.player2
>>> undefined
event.button
>>> undefined
使用CustomEvent所能做的就是设置参数detail
,,从而产生这种行为:
event.detail.index
>>> 0
event.detail.player2
>>> false
event.detail.button
>>> 1
结论:如果要创建自定义事件,则只能定义
详细信息
。但您可以将详细信息
定义为对象
,以添加多个自定义属性。这很难看,但这正是我们所拥有的。显然,没有办法做到这一点。JS提供的最佳解决方案是:
var event = new CustomEvent('PutYourEventNameHere', {
detail: { // filled with sample values
index: 0,
player2: false,
button: 1
}
});
但这不会像您预期的那样设置属性
event.index
>>> undefined
event.player2
>>> undefined
event.button
>>> undefined
使用CustomEvent所能做的就是设置参数detail
,,从而产生这种行为:
event.detail.index
>>> 0
event.detail.player2
>>> false
event.detail.button
>>> 1
结论:如果要创建自定义事件,则只能定义
详细信息
。但您可以将详细信息
定义为对象
,以添加多个自定义属性。它很难看,但这正是我们所拥有的。您需要从事件的详细信息属性访问它,例如内部事件回调eventVariable.detail.index
可能重复@GoodSamaritan No,因为它询问如何创建事件,而这会询问如何向该自定义事件添加自定义属性。您需要从该事件的detail
属性访问它,例如内部事件回调eventVariable.detail.index
可能重复的@GoodSamaritan No,因为这会询问如何创建事件,而这将询问如何向该自定义事件添加自定义属性。