2016-07-20 41 views
-2

我在网上看了这个,所有我能找到的都是折旧功能,所以在发布之前请检查以确保您的建议代码没有折旧。Javascript - 如何创建按键事件?

我发现这一点,试了一下: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent

$(document).ready(function() { 
    var x = new KeyboardEvent("FormatCode", deprectiatedArgument); 
}); 

KeyboardEventInit折旧后进一步检查。

我想创建一个按CTRL + K键的事件。

+1

[在JS/jQuery中触发keypress/keydown/keyup事件?]可能重复(http://stackoverflow.com/questions/3368578/trigger-a-keypress-keydown-keyup-event-in-js- jquery) – blgt

+1

@blgt这根本不是可能的重复。你提供的链接包括人要求检测一个按键的按键。我要求检测CTRL + K的按键。按键()不会检测到CTRL。也许首先阅读的问题,而不是只是标题 –

+0

这个问题是询问有关程序触发(注:不检测)键盘事件,链接的问题* *回答。为这样创建的事件添加修饰符是微不足道的。按照目前的措辞,这是完全重复的。你应该编辑一个解释,说明有什么区别 – blgt

回答

3

您对键盘上的每个按钮都有特定的键码。 他们都在这里http://keycode.info/

$(document).keyup(function(e) { 
    if (e.keyCode === 13) function(); // enter 
    if (e.keyCode === 27) function(); // esc 
}); 
0

这里的香草JS的解决方案来检测CTRL + K按键事件:

修订触发事件。

document.addEventListener("keypress", function(e) { 
 
    if ((e.ctrlKey || e.metaKey) && (e.keyCode == 11 || e.keyCode == 75)) { 
 
    alert("ctrl+k!"); 
 
    } 
 
}); 
 

 

 
document.getElementById("trigger").addEventListener("click", function(){ 
 
    //trigger a keypress event... 
 
    var e = document.createEvent('HTMLEvents'); 
 
    e.initEvent("keypress", false, true); 
 
    e.ctrlKey = true; 
 
    e.keyCode = 75; 
 
    document.dispatchEvent(e); 
 
});
Press <kbd>ctrl+k</kbd> or 
 
<a href="#" id="trigger">trigger the event</a>

+0

@downvoter - 你的反馈是赞赏! – Moob

+0

答案解释了如何检测,而不是如何触发事件 – blgt

+0

@blgt这在您的问题中并不清楚。我已经更新了我的答案,以包含_triggering_事件的示例。 – Moob

-1
$(document).ready(function() { 
    var bool = false; 
    $(document).keydown(function (e) { 
     if (e.keyCode === 17) { 
      bool = true; 
     } 
     if (bool == true && e.keyCode == 75) { 
      alert(""); 
     } 
    }); 
    $(document).keyup(function (e) { 
     if (e.keyCode === 17) { 
      bool = false; 
     } 
    }); 
}); 

这是我和朋友是如何得到它的工作

+0

您的OP中没有jQuery标签? –

+2

我可以问你,为什么当它实际上做你所问的时候,我的答案downvote?您是否至少在投票前检查了我发布的小提琴? – EddNewGate

+1

@EddNewGate我还没有对任何人下决心。我也得到了低估,我认为在这个线程中有很多咸人 –