在按ESC键时,我希望找到链接的href属性并重定向到该属性。我使用的是下面的代码,它可以工作,但是它是不一致的,我不知道为什么。
页面上有输入表单值,如果光标在某些输入字段中,并且按下ESC键,那么它就不能工作。然而,奇怪的是,如果我在jquery代码中添加了警报,那么它就会显示警报和重定向。
即使在某些输入字段聚焦时,我如何使其重定向?
$(document).ready(function() {
$(document).keydown(function(e) {
var code = (e.keyCode ? e.keyCode : e.charCode);
if (e.keyCode == 27) {
var href = $('a').attr('href');
alert(href); //notice this alert
if (href) {
$(location).attr("href", href);
}
}
});
});
在上面的代码中,请注意警报。如果警报在那里,它就会工作,如果我删除这一行,它就不起作用了。这是演示。(我只查看了Firefox)。
JSFiddle:https://jsfiddle.net/3q56atsm/
发布于 2020-01-22 00:19:52
尝尝这个。
$(document).ready(function() {
$(document).keydown(function(e) {
var code = (e.keyCode ? e.keyCode : e.charCode);
if (e.keyCode == 27) {
var href = $('a').attr('href');
if (href) {
$(location).attr("href", href);
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text">
<a href="https://stackoverflow.com/questions/59855117/jquery-keydown-is-not-consistent/59855330#59855330">Some test</a>
发布于 2020-01-22 00:35:07
我也面临过同样的问题,希望它能奏效。
$(document).ready(function() {
$(document).keydown(function(e) {
keyCode(e);
});
});
function keyCode(event) {
var x = event.keyCode;
if (x == 27) {
alert ("You pressed the Escape key!");
}else{
alert("Other Key");
}
}
https://stackoverflow.com/questions/59855117
复制