2016-07-20 71 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我還沒有對任何人下決心。我也得到了低估,我認爲在這個線程中有很多鹹人 –