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キーが押されたときにシフトキーを押すことをトリガーしません。これが私が望むすべてです。

4

1 に答える 1

1

このイベントを持つオブジェクトをリッスンすると、魔法が発生する可能性があります。

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

同じように動作します: e.altKey; e.ctrlKey; e.metaKey;

コードは次のようになります。

$('#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 に答える