【发布时间】:2018-03-29 18:57:45
【问题描述】:
我有一个简单的登录页面,我在上面为团队隐藏了一个彩蛋。基本上,它是一个大部分空白页面:
<form id="X" method="post" action="Y">
<input id="Z" name="Z" type="text" maxlength="99" />
<button type="submit" class="">Make the Jump</button>
</form>
复活节彩蛋是:
function getFun() {
var max = 1971;
var rando = Math.floor(Math.random() * Math.floor(max));
var getFunURL = 'https://xkcd.now.sh/' + rando;
var comicHTML;
var GetComic = $.ajax({
url: getFunURL,
method: 'get',
})
.done(function(data) {
var title = data.safe_title;
var imgURL = data.img;
comicHTML = '<img src="' + imgURL + '" />';
})
.fail(function() {
comicHTML = '<div>No dice on the comic. It failed to load.</div>';
})
.always(function() {
$("#easterEgg").html(comicHTML);
$("#easterEgg").show();
});
}
var allowedKeys = {
37: 'left',
38: 'up',
39: 'right',
40: 'down',
65: 'a',
66: 'b'
};
var konamiCode = ['up', 'up', 'down', 'down', 'left', 'right', 'left', 'right', 'b', 'a'];
var konamiCodePosition = 0;
$(document).keydown(function(e) {
var key = allowedKeys[e.keyCode];
var requiredKey = konamiCode[konamiCodePosition];
if (key == requiredKey) {
konamiCodePosition++;
if (konamiCodePosition == konamiCode.length) {
activateCheats();
konamiCodePosition = 0;
}
} else {
konamiCodePosition = 0;
}
});
function activateCheats() {
getFun();
}
当点击页面的空白区域(从输入中移除光标)并执行 Konami 时,漫画会加载。但是,当光标在输入内部时,执行 Konami 什么也不做。
为什么当光标在输入框内时.keydown 函数不起作用?
【问题讨论】:
-
$(document).on('keydown', '*', function(){...})可以吗?
标签: javascript jquery keydown