Я много искал и не могу найти удовлетворительного решения. Надеюсь, кто-то может помочь.
Пока я использую jQuery, я также пишу много тысяч строк Javascript. Таким образом, "чистое" javascript решение просто отлично.
Я пытаюсь определить, физически удерживается ли управляющий ключ в событии mouseup. Это; других предпосылок нет. Кто-нибудь знает, как сделать это надежно, кросс-браузер?
Я попытался сохранить это в переменной состояния, отметив, когда клавиша нажата и отпущена:
// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function( arg_obj_e ){
hash_state.sw_ctrldn = true;
console.debug( hash_state.sw_ctrldn );
});
$().bind('keyup','ctrl',function( arg_obj_e ){
hash_state.sw_ctrldn = false;
console.debug( hash_state.sw_ctrldn );
});
// END store control key status in hash_state
Однако это действительно не работает. Если вы проверите это с помощью Firebug и посмотрите консоль, вы увидите, что происходит автоматический повтор, и значение переключается.
Я проверил событие mouseup, чтобы узнать, есть ли что-нибудь полезное, но безрезультатно:
var debugEvent = function( arg_obj_e ){
var str = '';
for ( var attr in arg_obj_e ){
str += attr + ': ' + arg_obj_e[attr] + '\n';
}
console.debug(str);
}
Любая помощь будет оценена.