Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 吃我的';焦点';事件_Javascript_Jquery_Html_Internet Explorer_Javascript Events - Fatal编程技术网

Javascript 吃我的';焦点';事件

Javascript 吃我的';焦点';事件,javascript,jquery,html,internet-explorer,javascript-events,Javascript,Jquery,Html,Internet Explorer,Javascript Events,我有一个应用程序,必须运行在IE 7/8(兼容)。(我知道,对吧?) 该应用程序包括以下功能 如果单击下拉列表,列表会检查其他位置的一些值,并根据找到的匹配数启用或禁用某些选项。我使用下拉列表中的焦点事件来实现这一点 如果我在真正的浏览器中运行此代码,它就可以正常工作。如果我在IE7或8中启用兼容模式运行它,我必须单击DDL两次;第一次触发我的焦点事件代码,第二次触发使其下拉 标记: <!DOCTYPE html> <html> <head>

我有一个应用程序,必须运行在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>
为方便起见,您可以在上找到此代码。如果有人知道我如何在第一次点击时打开DDL,我很想听听

更新: StackOverflow建议触发“focusout”事件,但这也不起作用

更新II
这似乎是一个更普遍的IE错误。它在IE11的本机mod中也不起作用!:-(

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

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


(换言之,删除JS示例中的第2行,并且应该设置)

不,什么都没有。当我将代码复制到plnkr时,这是一个输入错误。如果您查看plunk,您可以看到我已经更正了代码,错误仍然存在。
$("#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;
});