按住Javascript / Jquery中的按键(Shift键)

时间:2018-09-06 09:09:18

标签: javascript jquery

在这里,我们不检查是否已按下Shift键。 我需要在功能调用上按Shift键

我们有可以在元素按键上按下键的代码。

e = jQuery.Event("keypress");
e.which = 13 //choose the one you want
   $("#test").keypress(function(){
    alert('keypress triggered');
}).trigger(e);

我的要求是Shift键应在我的函数上保持按下状态,并在另一个函数上释放。

function called(){
   .. code ..
   // need shift key pressed
}

function called_another_func(){
   .. code ..
   // need shift key released
}

1 个答案:

答案 0 :(得分:1)

可以通过以下代码以编程方式触发连续Shift键按下(16是Shift键):

$("selector").keydown(function(event){
    if(event.which === 16){
        //any code you want to execute before key press
        e=$.Event('keydown')
        e.which=16
        $("selector").trigger(e)
    }
});

但是,这可能会由于递归事件调用而挂起应用程序,并在控制台中引发错误。为防止这种情况,您将必须执行以下操作:

$("selector").keydown(function(event){
    if(event.which === 16){
        if("flag to check if you need to continue shift key press"){
            //any code (or function call) you want to execute before key press and 
            //toggle the variable to break out of this recursive event trigger 
            e=$.Event('keydown')
            e.which=16
            $("selector").trigger(e)
        }
    }
});
$("selector").keyup(function(event){
    if(event.which === 16){
            //call your function
        }
    });
});