变量值在函数外丢失

问题描述

变量focusedOpt值在向下箭头键上丢失,我能够将第一个元素聚焦在向下箭头键上,我在将下一个元素聚焦在向下箭头键上时遇到问题
代码

var focusedOpt;
$(function () {
  $(document).on("keydown",function () { CM_onKeyup(event) });
});
function CM_onKeyup(e) {
   if (e.keyCode == enums.keyboard.DOWN_ARROW) {
      if (!focusedOpt) {
         focusedOpt = optList.first().trigger("focus");
      } else if (focusedOpt.length > 0) {
         focusedOpt = focusele.nextAll("div[CMisShown='1']").first().trigger("focus");
      }
   }
}

解决方法

看起来您没有使用当前的结构正确地将事件传递给函数。您可以通过 2 种方法中的一种将事件正确传递到函数中:

选项 1:

$(function () {
    $(document).on("keydown",function (event) { CM_onKeyup(event) });
});

选项 2:

$(function () {
    $(document).on("keydown",CM_onKeyup);
});

我建议先尝试选项 2,看看会发生什么。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...