我已经实现了代码来检测“窗口徽标键”+“向上箭头”键事件的键组合。当用户在文本框内单击并按住“Win +向上箭头”时,我显示警告消息。手动工作正常。但我试图在页面加载时触发相同,它无法正常工作。
$(document).ready(function() {
var e = jQuery.Event('keyup');
e.metaKey = true;
e.which = 38; //up arrow
// Not working
$("#test").trigger(e);
// or
// Not working
$("#test").keyup();
$("#test").keyup(function(e) {
if (e.which == 38 && e.metaKey == true) {
alert('win + Up arrow pressed');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test" type="text" />
答案 0 :(得分:0)
你试过这种方式吗? 你应该在调用触发器之前声明你的事件处理程序。
$( "#test" ).on( "keyup", function (e){
if(e.which == 38 && e.metaKey == true)
{
alert('win + Up arrow pressed');
}
});
$( "#test" ).trigger( "keyup" );
答案 1 :(得分:0)
这是因为您在调用keyup
后声明了事件处理程序。
因此,为了使你的代码有效,你必须写下它:
$(document).ready(function() {
$("#test").keyup(function (e){
if(e.which == 38 && e.metaKey == true) {
alert('win + Up arrow pressed');
}
});
$("#test").keyup();
});