2016-11-24 82 views
1

我在jQuery的完整的新手/ JS多按鍵功能的jQuery

我想創建web界面我robotcar和檢查多個按鍵,每當我釋放所有按鍵robotcar將停止。

http://jsfiddle.net/gFcuU/1105/

var keys = {}; 

$(document).keydown(function (e) { 
    keys[e.which] = true; 
    keypr(); 
    printKeys(); 
}); 

$(document).keyup(function (e) { 
    delete keys[e.which]; 
    printKeys(); 
}); 

function printKeys() { 
    var html = ''; 
    for (var i in keys) { 
     if (!keys.hasOwnProperty(i)) continue; 
     html += '<p>' + i + '</p>'; 
    } 
    $('#out').html(html); 
} 

function keypr(){ 
    if (keys[87] && keys[68] == true){ 
    alert('shit works'); 
    } 
} 

多重操作的檢測工作,但如果我按W + d函數表示keypr它停止正常工作。 感謝您的幫助

回答

0

老兄。您的代碼工作正常,但是當您在檢測按鍵時執行警報時,它會卡住。

只要刪除警報,一切都會好起來的。如果您不想刪除警報,我想您必須在顯示警報之前刪除該對象。

function keypr(){ 
    if (keys[87] && keys[68] == true){ 
     delete keys[68]; 
     delete keys[87]; 
     alert('shit works'); 
    }