gpt4 book ai didi

javascript - Ember组件键盘事件不触发

转载 作者:行者123 更新时间:2023-12-01 04:06:41 25 4
gpt4 key购买 nike

按照指南 https://guides.emberjs.com/v2.1.0/components/handling-events/ 。我尝试为组件的关键事件绑定(bind)事件处理程序,但似乎不起作用。当我按下某个键时,我没有看到警报;但是,可以触发 doubleClick 事件处理程序。

我想要实现的是使用键 1 选择第一个单选按钮。

已更新

只有当单选按钮获得焦点时才能触发该事件。

我的问题

有没有办法绑定(bind)键盘事件而不使特定控件处于焦点?

代码

组件 JS,

import Ember from 'ember';

export default Ember.Component.extend({
classNames: ['quiz-control'],

keyUp(e) {
alert(e.keyCode);
},

keyDown(e) {
alert(e.keyCode);
},

keyPress(e) {
alert(e.keyCode);
}

});

组件 HTML,

<input name="ans" type="radio" id="op0"/>
<label for="op0">1</label>

<input name="ans" type="radio" id="op1"/>
<label for="op1">2</label>

<input name="ans" type="radio" id="op2"/>
<label for="op2">3</label>

<input name="ans" type="radio" id="op3"/>
<label for="op3">4</label>

最佳答案

我在document中绑定(bind)了keypress事件,

import Ember from 'ember';

export default Ember.Component.extend({
classNames: ['quiz-control'],

didInsertElement() {
this._super(...arguments);
$(document).on('keypress', this._keypressHandler);
},

willDestroyElement() {
this._super(...arguments);
$(document).off('keypress', 'document', this._keypressHandler);
},

_keypressHandler(e) {
console.log('quiz-control', e.keyCode);
}
});

关于javascript - Ember组件键盘事件不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com