如何获得e.keycode?
How to get a e.keycode?
我有一个代码:
var mainMenuContainer = document.getElementById('main-menu-container');
var mainMenuLinks = mainMenuContainer.getElementsByTagName('a');
function myFunction(links, i) {
return function () {
console.log(links[i]);
}
}
for (var i = 0; i < mainMenuLinks.length; i++) {
mainMenuLinks[i].onkeydown = myFunction(mainMenuLinks, i);
}
我现在可以获得 link 发生按键的位置。我仍然需要获取 link 上按下的键的 e.keycode
。怎么做?
(我需要用老方法来支持浏览器,所以代码是这样的)
要不编辑您的 myFunction
,您可以结束调用:
for (var i = 0; i < mainMenuLinks.length; i++) {
var onKeyDownFunc = myFunction(mainMenuLinks, i);
mainMenuLinks[i].onkeydown = function(e) {
console.log(e.keycode);
onKeyDownFunc();
};
}
您可以使用 code,但我希望点击 link
强烈推荐
const mainMenuContainer = document.getElementById("main-menu-container");
const myFunction = (e) => {
e.preventDefault();
if (e.type==="keydown") console.log(e.code);
const tgt = e.target; // or e.target.closest("a") if there are child elements of the link
if (tgt.tagName === "A") {
console.log(tgt.href)
}
};
mainMenuContainer.addEventListener("keydown", myFunction);
mainMenuContainer.addEventListener("click ", myFunction);
<div id="main-menu-container">
<a href="#home">Home</a> | <a href="#about">about</a>
</div>
我有一个代码:
var mainMenuContainer = document.getElementById('main-menu-container');
var mainMenuLinks = mainMenuContainer.getElementsByTagName('a');
function myFunction(links, i) {
return function () {
console.log(links[i]);
}
}
for (var i = 0; i < mainMenuLinks.length; i++) {
mainMenuLinks[i].onkeydown = myFunction(mainMenuLinks, i);
}
我现在可以获得 link 发生按键的位置。我仍然需要获取 link 上按下的键的 e.keycode
。怎么做?
(我需要用老方法来支持浏览器,所以代码是这样的)
要不编辑您的 myFunction
,您可以结束调用:
for (var i = 0; i < mainMenuLinks.length; i++) {
var onKeyDownFunc = myFunction(mainMenuLinks, i);
mainMenuLinks[i].onkeydown = function(e) {
console.log(e.keycode);
onKeyDownFunc();
};
}
您可以使用 code,但我希望点击 link
强烈推荐
const mainMenuContainer = document.getElementById("main-menu-container");
const myFunction = (e) => {
e.preventDefault();
if (e.type==="keydown") console.log(e.code);
const tgt = e.target; // or e.target.closest("a") if there are child elements of the link
if (tgt.tagName === "A") {
console.log(tgt.href)
}
};
mainMenuContainer.addEventListener("keydown", myFunction);
mainMenuContainer.addEventListener("click ", myFunction);
<div id="main-menu-container">
<a href="#home">Home</a> | <a href="#about">about</a>
</div>