【问题标题】:Activate link on div激活 div 上的链接
【发布时间】:2019-07-22 23:51:42
【问题描述】:

在我的 HTML 中,我做了这个是为了在 div 上有链接。

<div id="up" onclick="location.href='#'"></div>
<div id="down" onclick="location.href='#'"></div>
<div id="left" onclick="location.href='#'"></div>
<div id="right" onclick="location.href='#'"></div>

但我正在寻找使用键盘上的键激活链接的可能性。有可能吗?

非常感谢

【问题讨论】:

  • 那些不是链接。您正在使用带有onclick 属性的div 标记,该属性执行javascript 来更改页面位置。
  • 您是否尝试在用户按下键盘上的“上”、“下”、“左”或“右”箭头键时更改这些 div 的外观?

标签: javascript html hyperlink keyboard


【解决方案1】:

这里我们监听按键并映射到点击元素。

document.addEventListener('keyup', (e) => {
  let elem;
  console.log(e.key);
  switch (e.key) {
    case "ArrowDown":
      elem = "down";
      break;
    case "ArrowUp":
      elem = "up";
      break;
    case "ArrowLeft":
      elem = "left";
      break;
    case "ArrowRight":
      elem = "right";
      break;
    case "Backspace":
      elem = "back";
      break;
  }

  if (elem) elem = document.querySelector(`#${elem}`);

  if (elem) {
    // Prevent event.
    e.preventDefault();
    e.stopPropagation();
    elem.innerText = "Clicked";
    elem.click();
  }
});
div {
  min-width: 100px;
  min-height: 25px;
  border: 1px solid blue;
}
<div id="up" onclick="location.href='#'"></div>
<div id="down" onclick="location.href='#'"></div>
<div id="left" onclick="location.href='#'"></div>
<div id="right" onclick="location.href='#'"></div>
<div id="back" onclick="location.href='google.fr'"></div>

【讨论】:

    【解决方案2】:

    完美。这完全是我需要的..

    我根据需要调整了代码,但遇到了一个问题,即返回键。

    case "Backspace":
    elem = "return";
    break;
    
    <div id="return" onclick="location.href='../page.html'"></div>
    

    但它在最后一页返回,就像这样:history.back()

    点击此链接可以使用退格吗?

    非常感谢

    【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多