Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面加载时未触发Keyup事件_Javascript_Jquery_Keyup_Onkeyup - Fatal编程技术网

Javascript 页面加载时未触发Keyup事件

Javascript 页面加载时未触发Keyup事件,javascript,jquery,keyup,onkeyup,Javascript,Jquery,Keyup,Onkeyup,我已经实现了检测“窗口徽标键”+“向上箭头”键事件的键组合的代码。当用户在文本框内单击并按住“Win+向上箭头”时,我显示警告消息。手动操作效果很好。但我试图在页面加载时触发相同的事件,它不起作用 $(文档).ready(函数(){ var e=jQuery.Event('keyup'); e、 metaKey=true; e、 which=38;//向上箭头 //不起作用 $(“#测试”)。触发器(e); //或 //不起作用 $(“#测试”).keyup(); $(“#测试”).keyup

我已经实现了检测“窗口徽标键”+“向上箭头”键事件的键组合的代码。当用户在文本框内单击并按住“Win+向上箭头”时,我显示警告消息。手动操作效果很好。但我试图在页面加载时触发相同的事件,它不起作用

$(文档).ready(函数(){
var e=jQuery.Event('keyup');
e、 metaKey=true;
e、 which=38;//向上箭头
//不起作用
$(“#测试”)。触发器(e);
//或
//不起作用
$(“#测试”).keyup();
$(“#测试”).keyup(函数(e){
if(e.which==38&&e.metaKey==true){
警报(“按下win+向上箭头”);
}
});
});

你试过这种方法吗? 您应该在调用触发器之前声明事件处理程序

 $( "#test" ).on( "keyup", function (e){ 
     if(e.which == 38  && e.metaKey == true) 
     {
        alert('win + Up arrow pressed');
     }
 });
 $( "#test" ).trigger( "keyup" );

这是因为您在调用
keyup
后声明了事件处理程序

因此,要使代码正常工作,必须这样编写:

$(document).ready(function() {

    $("#test").keyup(function (e){ 
        if(e.which == 38  && e.metaKey == true) {
            alert('win + Up arrow pressed');
        }
    });

    $("#test").keyup();

});

为什么像这样显式调用keyup事件
//不能使用$(“#test”).trigger(e);或//不工作$(“#测试”).keyup()?需要将事件处理程序移到触发器上方。调用
$(“#test”).keyup()时没有设置事件处理程序。嗯,我无法理解您的问题,请签出此jsbin链接。在我刚从您的代码中删除两行代码后,它工作正常。谢谢您的建议。当我将事件处理程序移到触发器上方时,它对我有效。为什么负一点,我的问题无效吗?我试过你的代码,它能工作。但为什么窗口不是最大化的呢?也许我没有在我的问题中提到。很抱歉。您的代码中没有任何内容与最大化窗口相关。通常,窗口徽标键+向上箭头将最大化窗口。我想如果我检测到组合键(窗口徽标键+向上箭头),如果我错了,窗口会自动最大化。请建议我怎么做。这个组合被系统“捕获”,所以你不能在javascript中覆盖它。我也尝试了你的代码,它可以工作。但为什么窗口不是最大化的呢?也许我的问题中没有提到。对不起,是的,你没有提到。我不确定您是否可以最大化浏览器窗口全屏,但您可以通过javascript将其调整为screen.width和screen.height。类似于:函数maximize(){window.moveTo(0,0);window.resizeTo(screen.width,screen.height);}