代码之家  ›  专栏  ›  技术社区  ›  Victor

jquery下拉焦点

  •  1
  • Victor  · 技术社区  · 14 年前

    当页面加载时,我正在尝试在GridView(GridViewDropDown类)中的下拉列表上设置焦点:

    if ($('select.gridViewDropDown').length)
    {
         alert("Found my dropdown");
            //$('select.gridViewDropDown:first').focus();
         setTimeout(function() { $('select.gridViewDropDown').focus(); }, 10);
    }
    

    我可以看到警报,这意味着下拉列表被找到,但它从来没有得到焦点。我需要在这里换什么?我用的是IE 6/7。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    我会尝试这种方法:

    $(function() {
      setTimeout(function() { $('select.gridViewDropDown').focus(); }, 50);
    });
    

    您需要等到dom准备就绪,当页面加载时(最有可能在dom准备就绪时执行的代码)有可能设置了其他内容来窃取焦点,这种方法将其乘以略大于 那个 发生。

    它还利用了jquery的工作方式,如果在该函数触发时找不到元素,则没有元素会窃取焦点,因此可以安全地将焦点留在那里。