【发布时间】:2012-11-27 17:05:05
【问题描述】:
我正在使用 jQuery 插件 searchabledropdown,它本质上将 <select> 选择元素转换为 input 字段,在您键入时显示结果(它看起来和行为仍然像下拉选择不过!)。
现在我想将焦点传递给这样一个转换后的元素。我做了什么:
- 我在 Chrome 网络工具中查找了上述元素,
- 然后写了一个匹配的 jQuery 选择器,
- 终于叫
focus()就可以了。
我的代码似乎适用于其他元素(尝试使用 未转换,常规 <select> 元素,它工作正常)。
jQuery(".map-searchbox input").focus();
但是,将焦点放在由 searchabledropdown 创建的 input 元素不起作用......这是 转换后的 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() 调用没有帮助吗?
我们将不胜感激! :)
附言为了避免检查 jQuery 选择器的常见建议:选择器有效,如果通过 Chrome JS 控制台打印出来,我会准确地显示上面列出的 input 元素。
【问题讨论】: