2015-12-23 43 views

回答

1

原因是因为change事件不包含键盘信息。要做到这一点,你需要的是设定在CTRL关键的keydown设置父元素的标记,并检查该标志为真时,更改事件发生

事情是这样的:

var ctrlKeyHeld = false; 

$(document).keydown(function(e) { 
    ctrlKeyHeld = e.ctrlKey; 
}).keyup(function() { 
    ctrlKeyHeld = false; 
}) 

$("#foo").on("change",function(e){ 
    if (ctrlKeyHeld){ 
     console.log("ctrl is pressed"); 
    } 
    else{ 
     console.log("ctrl is not pressed"); 
    } 
}); 

Working example

+0

你还是应该检查比释放的键是Ctrl键之一:'.keyup(功能(E){ 如果(e.which === 17)ctrlKeyHeld = FALSE; })' –