javascript - IE 出现 'focus' 事件问题

标签 javascript html jquery internet-explorer jquery-events

我有一个必须在 IE 7/8(兼容)中运行的应用程序。 (我知道,对吧?)

该应用程序包含以下功能......

如果我单击下拉列表,该列表会检查其他位置的某些值,并根据它找到的匹配项数量启用或禁用某些选项。我使用下拉列表的焦点事件来实现这一点。

如果我在真实的浏览器中运行此代码,它可以正常工作。如果我在启用兼容模式的 IE7 或 8 中运行它,我必须单击 DDL 两次;第一次触发我的焦点事件代码,第二次触发它下拉。

标记:

<!DOCTYPE html>
  <html>
    <head>
      <script data-require="jquery@*" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    </head>
  
    <body>
      <select id="aa">
        <option>A</option>
        <option>B</option>
        <option>C</option>
        <option>D</option>
        <option>E</option>
        <option>F</option>
        <option>G</option>
      </select>
      
      <script src="script.js"></script>
    </body>
  </html>

JS:

$("#aa").focus(function() {
  var countSelectedEvents = 2;
  var kids = $("#aa").children("option");
  kids.removeAttr("disabled");
  kids.removeAttr("title");

  if (countSelectedEvents == 0) {
    kids.slice(1).attr("disabled", "disabled");
    kids.slice(1).attr("title", "This option is only available if one or more Events are selected");
    kids.slice(4).attr("title", "This option is only available if exactly ONE Event is selected");
  } else if (countSelectedEvents > 1) {
    kids.slice(4).attr("disabled", "disabled");
    kids.slice(4).attr("title", "This option is only available if exactly ONE Event is selected");
  }
  return true;
});

为方便起见,您可以在 plnkr 上找到此代码。如果有人知道如何让 DDL 在第一次点击时打开,我很想听听。

更新:
This question Stack Overflow 上建议触发 focusout 事件,但这也不起作用。

更新二
看来这是一个更通用的 IE 错误。它在 IE11 的 native mod 中也不起作用! :-(

最佳答案

您的 .focus() 函数事件中有一个额外的左括号 {。这可能会破坏您的代码。

而不是 .focus(function(){{}) ,应该是 .focus(function(){})

(换句话说,删除 JS 示例中的第 2 行并应进行设置)

关于javascript - IE 出现 'focus' 事件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991737/

相关文章:

javascript - 在提交时将选中的复选框的值保存在数组中 Ionic

javascript - 根据您在上一页单击的标签/href 将类附加到正文

javascript - `jQuery.getJSON()` for 循环内的函数

php - 使用 jQuery 和 PHP 发送和接收 AJAX 请求

javascript - 在javascript中更改线条颜色

javascript - HTML 选择列表 - 如何使用 jQuery 添加水印?

javascript - 为什么有时在 Javascript 中函数参数前有美元符号 ($arg)?

javascript - 无法从 html onclick 启动 javascript 函数

javascript - 访问 Google 协作平台上的页面以加载到我的网站上

html - 导航栏中的垂直居中文本