Javascript jQuery焦点无法与所选插件一起使用
可能重复:Javascript jQuery焦点无法与所选插件一起使用,javascript,jquery,Javascript,Jquery,可能重复: 我正在使用jQuery插件selected()创建更有用的选择框 但是,jQuery焦点事件不适用于此插件 我的html代码: <select class="product"> <option value="1">Product One</option> <option value="2">Product Two</option> </select> 它没有聚焦元素 这是我的JSFIDLE: 插件中是否指定了
我正在使用jQuery插件selected()创建更有用的选择框 但是,jQuery焦点事件不适用于此插件 我的html代码:
<select class="product">
<option value="1">Product One</option>
<option value="2">Product Two</option>
</select>
它没有聚焦元素
这是我的JSFIDLE:
插件中是否指定了其他方法或事件来聚焦元素?此库看起来不错,但除了设置初始参数外,它似乎不允许您与它交互 尽管如此,请尝试以下方法:
$('.chzn-single').focus(function(e){
e.preventDefault();
});
$('button').click(function() {
$('.chzn-single').focus();
});
所发生的是$('.chzn single')
,它是一个a
元素,通过制表符获得焦点,Selected侦听该事件并触发字段激活并聚焦容器。我需要在click事件上添加preventDefault
,以保持对容器的关注
在任何情况下,它似乎都是有效的。问题是,您原来的选择框不再存在,并且已被一个
和一些
替换,因此输入控件上的标准浏览器行为焦点
不再相关。您需要查看该库,并了解如何捕获keydown事件以创建虚拟焦点。如果你幸运的话,图书馆的作者想到了这一点,并为你提供了一些钩子。这个话题已经有一年的历史了,但对于可能需要它的人来说:
要在选择下拉列表中的元素后重新聚焦字段,请编辑所选源:
内部函数*selected.prototype.choice_build=函数(项){*:
增加
此.container_mousedown();
这是一个肮脏的黑客和部分解决方案,以实现重新聚焦,但它似乎对我的v.0.9.8插件工作。如果有人可以建议更好的解决方案-我将很高兴采用它。以下似乎对我有效:
$('.chzn-container').mousedown();
-1:这不仅仅是聚焦元素。它还打开了元素中的选项。这不是聚焦对选择输入的作用。
$('.chzn-container').mousedown();