0

我在 jquery 中得到了这段代码-:

$('#postBoxEditor').live("keydown",function(e){ 
if(e.which == 13 && !e.shiftKey){ e.preventDefault(); 
var triggerevent = jQuery.Event("keydown"); triggerevent.which = 16; //shift key code
$(this).trigger(triggerevent); }             });

但这不会在按下 enter 时触发 shift 键,这就是我想要的。

4

1 回答 1

1

如果您收听具有此事件的对象,那么魔术就会发生,如果按下 e.shiftKey 则为真,因此您需要擦除“!”

top.addEventListener('keydown', function(e){
   if(e.shiftKey) {
     /* do nice stuff.. */
   }
}, false);

同样适用于:e.altKey;e.ctrlKey;e.元密钥;

您的代码应如下所示:

$('#postBoxEditor').on("keydown",function(e){
    if((e.keyCode == 13) && e.shiftKey) {
        e.preventDefault(); 
    }
});

希望就是这样!:)

但你想要的是。

<script>
var enterflag=false;
var shiftenterflag=false;
$(document).ready(function() {
    $('#in').on('keydown',function(e){
        if(e.keyCode==13) enterflag=true;
        if(e.keyCode==16 && enterflag) {
            shiftenterflag=true;
            $('#report').show();
        }
    });
    $('#in').on('keyup',function(e){
        if(e.keyCode==16 && enterflag) $('#report').hide();
        if(e.keyCode==13) { 
            enterflag=false;
            shiftenterflag=false;
        }                
    });
});
</script>
<label>press enter and shift while focus in input to show the magic</label>
<input type="text" id="in" value="press enter and shift" style="with:200px" />
<div id="report" style="display:none">test</div>

这会触发 enter+shift 但不会触发 shift+enter

于 2013-04-13T09:25:03.740 回答