我找了很多,但似乎找不到一个令人满意的解决方案。我希望有人能帮上忙。
在我使用jQuery的同时,我也在写成千上万行的Javascript。所以一个“纯”的javascript解决方案就可以了。
我正在尝试确定鼠标向上事件时是否按下了control键。仅此而已;没有其他前提条件。有人知道如何在跨浏览器的情况下可靠地做到这一点吗?
我尝试通过记录按键何时被按下和释放来将其存储在状态变量中:
// 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);
}
任何帮助都将不胜感激。
发布于 2009-07-31 03:49:35
您可以使用event.ctrlKey属性。
$(function(){
$('#elementId').mouseup(function(e){
var isCtrlPressed = e.ctrlKey;
// true or false whether ctrl is pressed or not
});
});
查看正在运行的示例here。
https://stackoverflow.com/questions/1210547
复制相似问题