2016-11-24 92 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'); 
    }