Javascript 为什么我不能向div添加事件侦听器?
我有一个对象,它有一个创建div的方法,然后给它们分配一个on-click事件,但我也想给它们分配一个onkeypress事件,但它不允许我这么做 这是创建div的方法。它很好用Javascript 为什么我不能向div添加事件侦听器?,javascript,object,Javascript,Object,我有一个对象,它有一个创建div的方法,然后给它们分配一个on-click事件,但我也想给它们分配一个onkeypress事件,但它不允许我这么做 这是创建div的方法。它很好用 populateSquares(){ let relatedTagToPopulation = document.getElementById("questionp"); let whatTextIs = relatedTagToPopulation.textContent; for (let
populateSquares(){
let relatedTagToPopulation = document.getElementById("questionp");
let whatTextIs = relatedTagToPopulation.textContent;
for (let u=0;u<this.stemQuestions.length;u++){
if (this.stemQuestions[u]==whatTextIs){
var populateSquaresPertinentInt = u;
}
}
for (let i=0;i<this.stemAnswers.length;i++){
if (i==populateSquaresPertinentInt){
let numberOfSquaresToAdd = this.stemAnswers[i].length;
for (let j=0;j<numberOfSquaresToAdd;j++){
let elToAdd = document.createElement("div");
elToAdd.id="ans"+j+"";
elToAdd.className="lans";
elToAdd.onclick= hangmanGame.selectThisSquare;
console.log(elToAdd);
let elToAddInto = document.getElementById("answeri");
elToAddInto.appendChild(elToAdd);
}
}
}
},
这是按键时应该触发的方法,但不会触发任何内容
textInputHandler(){
console.log(4);
},
默认情况下,div是不可选择的,因此它不会对任何按键事件做出反应。但是,您可以通过将tabindex=0添加到div来选择它。这样,当您单击它时,它将成为可聚焦的,然后允许触发onkeydown事件
请参见下面的工作示例:
康斯特博弈={
addKeyDownListener{
document.getElementByIdtxt.onkeydown=game.handleTextInput
},
handleTextInput{
1.log4;
}
}
game.addKeyDownListener;
文本{
高度:100px;
宽度:100px;
边框:1px纯黑;
大纲:无;/*添加以隐藏大纲*/
}
我试过按键盘和按键盘,但都不起作用。我试图通过添加此函数来调用该函数。它无论如何都不起作用。请将您的代码编辑为一个可能的副本!我认为您添加onkeydown事件的元素是某种类型的输入元素,对吗?不,它只是一个div。这是正确的,但我要注意,对于可访问性,OP应该使用a来处理用户的输入,即使被CSS隐藏。很多设备的键盘并不总是可访问的,而将焦点设置在div上则不允许这些设备切换虚拟键盘。
textInputHandler(){
console.log(4);
},