如何将这两者合二为一,以避免重复两次代码:
document.querySelector('body').onkeydown = function(e){
if ((e.keyCode || e.which) == 77) {
e.preventDefault();
// code...
}
}
$("button").on('click', function(){
// code...
});
基本上我希望能够点击元素或按键。
答案 0 :(得分:2)
正如@forgivenson建议的那样,您可以通过将可执行代码放入 function 来避免代码重复。它看起来像这样:
document.querySelector('body').onkeydown = function(e){
if ((e.keyCode || e.which) == 77) {
e.preventDefault();
doSomething(); // call your function on keydown
}
}
$("button").on('click', doSomething); // call your function on click
function doSomething() {
// code to execute on keydown or click
}
以下是一个例子。键入m
(或M
)或点击按钮即可调用您的代码。
$("input").on('keydown', function(e){
if ((e.keyCode || e.which) == 77) {
e.preventDefault();
doSomething(); // call your function on keydown
}
});
$("button").on('click', doSomething); // call your function on click
function doSomething() {
// code to execute on keydown or click
console.log("You typed 'm' or clicked the button.");
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input placeholder="Type here">
<button>Click Me</button>
&#13;
答案 1 :(得分:0)
如何调用函数???
function doStuff(){
}
document.querySelector('body').onkeydown = function(e){
if ((e.keyCode || e.which) == 77) {
e.preventDefault();
doStuff()
}
}
$("button").on('click', doStuff);
答案 2 :(得分:0)
您可以简单地将所有代码放在一个函数someFunc
中,然后就可以调用它
function someFunc() {
alert('Hi');
}
document.querySelector('body').onkeydown = function(e){
if ((e.keyCode || e.which) == 77) {
e.preventDefault();
someFunc();
}
}
$("button").on('click', function(){
someFunc();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Click me or `m` in your keyboard</button>
&#13;