1

我正在使用 jQuery 插件searchabledropdown,它本质上将<select>选择元素转换为input在您键入时显示结果的字段(尽管它看起来和行为仍然像下拉选择!)。

现在我想将焦点传递给这样一个转换的元素。我做了什么:

  • 我在 Chrome 网络工具中查找了上述元素,
  • 然后写了一个匹配的 jQuery 选择器,
  • 终于调用focus()它了。

我的代码似乎适用于其他元素(尝试使用未转换的常规<select>元素,它工作正常)。

jQuery(".map-searchbox input").focus();

然而,将焦点放在input由 searchabledropdown 创建的元素上不起作用......这是转换的 html 元素的轮廓。(对不起所有的风格垃圾,但我不确定它是否重要......)

<div class="map-hudbox map-searchbox">
  <select class="searchselect" style="text-decoration: none; width: 163px; height: 19px;">
    <option value="...">...</option>
    ...
  </select> 
  <input type="text" style="height: 17px; position: absolute; top: 0px; left: 0px; margin: 0px; padding: 2px 0px 0px 3px; outline-style: none; border-style: solid solid none; border-color: transparent; background-color: transparent; border-left-width: 1px; border-top-width: 1px; font-size: 12px; font-variant: normal; font-weight: normal; color: rgb(68, 68, 68); text-align: -webkit-auto; text-indent: 0px; text-shadow: none; text-transform: none; width: 140px; z-index: 2;">
  <div style="position: absolute; top: 0px; left: 0px; width: 165px; height: 19px; background-color: rgb(255, 255, 255); opacity: 0.01; z-index: 1;"></div>
</div>

input和底部div元素是由searchabledropdown插件从select顶部创建的元素。这个领域是我希望重点关注的领域。input

任何想法为什么正常.focus()通话没有帮助?

帮助将不胜感激!:)


PS 为了避免检查 jQuery 选择器的通常建议:选择器有效,如果通过 Chrome JS 控制台打印出来,我会准确地显示input上面列出的元素。

4

2 回答 2

0

我认为标签outline-style: none;上的 css 属性input使它看起来好像输入实际上没有集中。

于 2012-11-27T17:14:44.347 回答
0

再试一试。

我意识到问题是可见性之一。searchabledropdown 插件改变了输入和选择元素的可见性,并且将焦点放在不可见的元素上显然不起作用。

在弄清楚当上述内容jQuery(".map-searchbox input").focus();像魅力一样时要使什么可见之后。

于 2013-01-16T09:02:18.970 回答