Я искал хорошую сделку и не могу найти удовлетворительного решения. Я надеюсь, что кто-то может помочь.
Пока я использую 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);
}
Любая помощь будет оценена.