Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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_Jquery Plugins_Jquery Chosen - Fatal编程技术网

Javascript jQuery选择的插件:在切换时捕获要打开的焦点

Javascript jQuery选择的插件:在切换时捕获要打开的焦点,javascript,jquery,jquery-plugins,jquery-chosen,Javascript,Jquery,Jquery Plugins,Jquery Chosen,除了一个小问题外,我们目前使用的是非常棒的。当我们使用单个下拉列表时,如果您在“Selected”控件中使用tab键,则不会显示实际的下拉列表部分。但是,当将插件应用于多个“选择”时,它确实会出现 在阅读了文档和GitHub问题之后,似乎有很多关于选项卡排序和聚焦的内容被提及,但似乎没有任何内容涉及这个相当简单的需求;在选项卡切换时接收焦点时显示下拉列表 因此,假设这个功能不是插件的一部分,有没有其他方法,比如捕获锚标记的焦点 $('.chzn-single').focus(function(e

除了一个小问题外,我们目前使用的是非常棒的。当我们使用单个下拉列表时,如果您在“Selected”控件中使用tab键,则不会显示实际的下拉列表部分。但是,当将插件应用于多个“选择”时,它确实会出现

在阅读了文档和GitHub问题之后,似乎有很多关于选项卡排序和聚焦的内容被提及,但似乎没有任何内容涉及这个相当简单的需求;在选项卡切换时接收焦点时显示下拉列表

因此,假设这个功能不是插件的一部分,有没有其他方法,比如捕获锚标记的焦点

$('.chzn-single').focus(function(e){
    alert('I should be focused!')
});    
到目前为止,我还没有成功,我想知道是否还有其他人遇到过这个问题。您可以查看这个演示问题的示例

  • 您应该跟踪所选容器内的搜索输入的焦点事件,而不是锚元素,然后为所选容器触发mousedown事件-打开下拉列表时它会侦听该事件

  • 您需要使用委派事件方法将事件处理程序绑定到动态添加的元素(对于jquery 1.7.1和更早版本,您可以只使用“live”方法)

  • 您还需要检查容器当前是否处于活动状态,以避免递归调用(当所选下拉菜单打开时,搜索输入将再次聚焦)

  • $('body').on('focus','chzn容器单输入',函数(){ if(!$(this).closest('.chzn-container').hasClass('chzn-container-active')) $(this).closest('.chzn container').trigger('mousedown'); //或者用这个代替 //$('select').trigger('liszt:open'); }); 这是工作

    而不是
    $(this).closest('.chzn container').trigger('mousedown')
    
    您还可以触发插件的内部事件:
    $('select')。触发器('liszt:open')

    小提琴不再工作了。也许你可以使用文件作为外部文件?@Jawa你是对的,它使用了“selected”js插件,该插件在所使用的链接中不再可用。我已经使用您提到的cdn更新了JSFIDLE,它为select控件提供了另一个类——我在JSFIDLE中相应地更新了它们。非常感谢!最后我使用了:$(document).on(“focus”,“selected container single input”,函数(){$(this).closest(“.selected container single”).not(“.selected container active”).trigger('mousedown');});现在看来,李斯特的《开放》应该是《被选中的:开放》,正如《被选中的jayzuz》所示!这个库为开发人员提供实现这一点的方法不是更好吗?它毕竟是一个开发人员库。。。。。 $('body').on('focus', '.chzn-container-single input', function() { if (!$(this).closest('.chzn-container').hasClass('chzn-container-active')) $(this).closest('.chzn-container').trigger('mousedown'); //or use this instead //$('#select').trigger('liszt:open'); });