jquery - 为什么 jquery ui 自动完成功能放弃对这些功能的支持?

标签 jquery jquery-ui autocomplete

jquery UI 团队有一个 blog on how to replace the legacy autocomplete and justifies that it can replicate all of the old features and options 。根据我的测试,我认为它们无法复制:

  1. selectFirst 如果您有远程数据源
  2. selectFirstmustMatch(如果您使用multiple: true)

我明白了this questions on how to replicate some of the legacy autocomplete选项来自 this plugin ,并且有一个选定的答案,但它没有解决这些情况。

jquery ui folks have an example of replicating selectFirst in the new autocomplete ,但除非我弄错了,否则它仅适用于本地数据源(不适用于远程数据源,因为在调用事件之前通常不会填写菜单)。

我是否遗漏了某些内容,或者 jquery ui 自动完成功能根本不支持这些场景??

最佳答案

实际上支持这些场景,但是您必须扩展 ui.autocomplete 小部件才能实现所需的行为。实现 selectFirst 功能的快速示例:

$.widget( "ui.autocomplete2", $.ui.autocomplete, {
    _renderMenu: function( ul, items ) {
        var self = this;
        $.each( items, function( index, item ) {
            self._renderItem( ul, item );
        });
        // setTimeout is needed because jQueryUI automaticaly removes
        // active item just after menu rendering
        setTimeout( function(){
            self.menu.activate(
                // fake event object. Needed to avoid jQueryUI error 
                // (unsafe property access)
                {'type':'fake'}, 
                ul.find(':first') );
        }, 1);
    }
});

注意:始终检查新的小部件是否仍然与新版本的 jQuery UI 兼容!

更新:mustMatch 实现示例可在此处找到:http://jqueryui.com/demos/autocomplete/combobox.html

关于jquery - 为什么 jquery ui 自动完成功能放弃对这些功能的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057965/

相关文章:

Javascript、jQuery 模式创建 HTML 文档

php - Jquery UI 自动完成

emacs - Emacs CEDET/semantic 中键盘的自动补全

javascript - 在页面加载时加载模态并在加载完成后关闭

jquery - 使用 jquery 制作文本对齐动画

javascript - 如何动态添加事件监听器

javascript - jalali 日历 for dateTimepicker jquery ui 插件

jQuery UI 可排序和两个连接列表

css - 防止 CSS 类被覆盖

javascript - Google Place Autocomplete Address API 强制 HTML Autocomplete = Off