使用html和javascript在鼠标单击和按键时调用相同的函数
我想在javascript中通过鼠标点击或按键(enter)调用相同的函数。这是我在html中的代码,但它不起作用。我该怎么做使用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")
<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();
}