3 回答

TA貢獻1890條經(jīng)驗 獲得超9個贊
這取決于。對于“正?!钡蔫€匙,這意味著非Shift,Ctrl,ALT,( CMD),答案是否定的,該事件處理程序?qū)②s上/火在隊列中,一個接一個。
對于我上面提到的修飾鍵,事件對象上有一個屬性。
例:
$(document).bind('keypress', function(event) {
if( event.which === 65 && event.shiftKey ) {
alert('you pressed SHIFT+A');
}
});
其他屬性是:
event.ctrlKey
event.altKey
event.metaKey

TA貢獻1906條經(jīng)驗 獲得超10個贊
如果您只想在連續(xù)按下多個鍵時觸發(fā)處理程序,請嘗試以下操作:
jQuery.multipress = function (keys, handler) {
'use strict';
if (keys.length === 0) {
return;
}
var down = {};
jQuery(document).keydown(function (event) {
down[event.keyCode] = true;
}).keyup(function (event) {
// Copy keys array, build array of pressed keys
var remaining = keys.slice(0),
pressed = Object.keys(down).map(function (num) { return parseInt(num, 10); }),
indexOfKey;
// Remove pressedKeys from remainingKeys
jQuery.each(pressed, function (i, key) {
if (down[key] === true) {
down[key] = false;
indexOfKey = remaining.indexOf(key);
if (indexOfKey > -1) {
remaining.splice(indexOfKey, 1);
}
}
});
// If we hit all the keys, fire off handler
if (remaining.length === 0) {
handler(event);
}
});
};
例如,要在圣火上
jQuery.multipress([83, 84], function () { alert('You pressed s-t'); })
添加回答
舉報