我正在使用 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
上面列出的元素。