2017-03-09 64 views
1

我發現這種方式模擬多個按鍵事件,而是用它,我只能在.which設置一個鍵碼,我想模擬按鍵
ALT + 在空間 + X同時。如何在同一時間

對於ALT我可以使用.altKey = true;

$(".btn").click(function() { 
    var e = jQuery.Event("keypress"); 
    e.which = 88;  // x code value 
    e.altKey = true;  // Alt key pressed 
    $("input").trigger(e); 
}); 

如何添加空間邀請碼?

+0

除了結在手指試圖以按壓與

你可以用兩個事件實現它左手,不知道大圖是什麼,我假設你有一個事件監聽器在執行一些代碼的密鑰組合設置。那麼爲什麼不直接調用目標函數而不是模擬鍵的組合呢? – Nope

+0

請參閱http://stackoverflow.com/questions/17504496/javascript-two-key-pressed-at-the-same-time。這是爲了處理按鍵。所以看起來事件一次只能容納一個'which'鍵加上修飾符(alt,shift等)。您需要將多個事件傳遞給'input'並從那裏處理。或者直接調用該方法,就像@Fran所說的那樣。 – G0dsquad

+0

是的,我可以簡單地調用這個函數,但是這個問題的答案可以回答問題,例如最小化窗口的功能,以後我會需要(alt + space + n),也許編輯問題更好,我會看到鏈接@ G0dsquad –

回答

0

對於我之前的回答,我表示歉意。我想過如何處理。現在我修改代碼來處理和觸發:KeyDown和使用keyUp這樣的:

var x, 
    alt, 
    space; 

document.addEventListener('keydown', function (e) { 
    e = window.event ? event : e; 
    switch (e.keyCode) { 
     case 88: 
      x = true; 
      break; 
     case 18: 
      alt = true; 
      break; 
     case 32: 
      space = true; 
      break; 
    } 
}); 

document.addEventListener('keyup', function (e) { 
    if (x && alt && space) { 
     alert("alt + space + x Pressed!"); 
    } 

    x = alt = space = false; 
}); 

function triggerEvent(eventName, keyCode) { 
    var event; // The custom event that will be created 

    if (document.createEvent) { 
     event = document.createEvent('HTMLEvents'); 
     event.initEvent(eventName, true, true); 
    } else { 
     event = document.createEventObject(); 
     event.eventType = eventName; 
    } 

    event.eventName = eventName; 
    event.keyCode = keyCode || null; 

    if (document.createEvent) { 
     document.dispatchEvent(event); 
    } else { 
     document.fireEvent('on' + event.eventType, event); 
    } 
} 

triggerEvent('keydown', 88); 
triggerEvent('keydown', 18); 
triggerEvent('keydown', 32); 
triggerEvent('keyup'); 

https://jsfiddle.net/m83omwq5/1/

+0

你的方法檢測到組合,但不模擬,無論如何,謝謝你,也許我不能這樣做。 –

+0

哦,對不起。任何方式,你可以觸發這些事件相同的順序:) –

+0

嘿!我糾正了代碼(以前是關於如何處理) - 現在如何處理和觸發 –