Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery焦点无法与所选插件一起使用_Javascript_Jquery - Fatal编程技术网

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();