为什么不显示警报?

时间:2016-03-07 14:21:36

标签: javascript

遵循HTML5游戏开发教程。当我按下键盘上的up键时,我无法弄清楚为什么这段代码不会显示警告。

var canvas = document.getElementById("mainCanvas");
var context = canvas.getContext("2d");

var keys = [];

window.addEventListener("keydown", function(e) {
  keys[e.keyCode] = true;
}, false);

window.addEventListener("keyup", function(e) {
  delete keys[e.keyCode]
}, false);

if (keys[38]) alert("yep");

Chrome控制台清楚地显示keys[38]true,并在控制台中输入if (keys[38]) alert("yep");即可显示提醒。我想我在这里缺少一个基本的东西(或者从根本上说是愚蠢的)。如果JS代码中没有明显错误,我将很乐意提供更多信息。

谢谢!

2 个答案:

答案 0 :(得分:2)

if将在您的勾选结束时立即调用。一旦你离开那个嘀嗒声,听众就会开始射击。因此,执行keys时,if数组无法设置。

之后将调用的代码的唯一部分是传递给keydownkeyup事件的两个回调。如果您想对这些事件做出反应,那么您的代码应驻留在那些回调的

答案 1 :(得分:1)

您需要将代码(<script type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler_Page); function EndRequestHandler_Page(sender, args) { TinyEditor(); } $(document).ready(function () { TinyEditor(); }); </script> 置于事件监听器中,如下所示:

&#13;
&#13;
alert
&#13;
&#13;
&#13;