使用html和javascript在鼠标单击和按键时调用相同的函数

使用html和javascript在鼠标单击和按键时调用相同的函数,javascript,html,Javascript,Html,我想在javascript中通过鼠标点击或按键(enter)调用相同的函数。这是我在html中的代码,但它不起作用。我该怎么做 <div class="C" onclick="Cfunc()" onKeyDown="if(keycode==13)Cfunc();"> <p >C</p> </div> 我会在标记之外这样做: // elements var audio = document.getElementById("Caudio")

我想在javascript中通过鼠标点击或按键(enter)调用相同的函数。这是我在html中的代码,但它不起作用。我该怎么做

<div class="C" onclick="Cfunc()" onKeyDown="if(keycode==13)Cfunc();">
  <p >C</p>
</div>

我会在标记之外这样做:

// elements
var audio    = document.getElementById("Caudio")
var play_btn = document.querySelector('.C')

// event handlers
play_btn.addEventListener('click', function() {
  audio.play()
})
document.addEventListener('keydown', function (event) {
  if ( event.keyCode == 13 ) {
    audio.play()
  }
})

如果不想将keydown事件绑定到整个文档,请将div设置为可聚焦并相应地更改它

<div class="C" onclick="Cfunc()" onKeyDown="Cfunc();">
  <p >C</p>
</div>

如何想象DIV上的键控?元素上的键控仅适用于输入或文本区域。你不能在一个div上下键,因为即使你可以看到这个div,你实际上并没有影响它,只是在查看它。您需要监听window onject上的按键,这可以使用window.onkeydown=yourFunctionNameGoesher来完成。@AndrewTet这是可能的,如果可以的话。可以使用属性使其聚焦,例如
tabindex=“-1”
<div class="C" onclick="Cfunc()" onKeyDown="Cfunc();">
  <p >C</p>
</div>
function Cfunc(e) {
  if(e.keycode && e.keycode!=13)
   return;
  var audio = document.getElementById("Caudio")
  audio.play();
}