将自定义类添加到 jQuery UI 的 ui-autocomplete Combobox Div

Posted

技术标签:

【中文标题】将自定义类添加到 jQuery UI 的 ui-autocomplete Combobox Div【英文标题】:Adding a Custom Class to jQuery UI's ui-autocomplete Combobox Div 【发布时间】:2013-10-27 16:49:23 【问题描述】:

如何将自定义类添加到 ui-autocomplete div?我的页面上加载了多个自动完成小部件,并且它们的一些下拉菜单需要设置不同的样式,因此我不能只编辑 ui-autocomplete 类。我正在使用 jQuery UI 组合框代码 (http://jqueryui.com/autocomplete/#combobox),并且通过更改该代码,我想向创建的 ui-autocomplete div 添加一个类。

【问题讨论】:

【参考方案1】:
$("#auto").autocomplete(
    source: ...
).autocomplete( "widget" ).addClass( "your_custom_class" );

【讨论】:

向输入添加一个类,但不添加关联的自动完成列表。 问题是指需要样式的“下拉菜单”,这只会修改输入。 未捕获的错误:无法在初始化之前调用自动完成的方法;试图调用方法“小部件”【参考方案2】:

抱歉耽搁了)。看看下面的代码。

$(function () 
    $("#auto").autocomplete(
        source: ['aa', 'bb', 'cc', 'dd']
    ).data("ui-autocomplete")._renderItem = function (ul, item) 

        ul.addClass('customClass'); //Ul custom class here

        return $("<li></li>")
        .addClass(item.customClass) //item based custom class to li here
        .append("<a href='#'>" + item.label + "</a>")
        .data("ui-autocomplete-item", item)
        .appendTo(ul);
    ;
);

【讨论】:

【参考方案3】:

只需使用classes 参数:

$("#auto").autocomplete(
    classes: 
        "ui-autocomplete": "your-custom-class",
    ,
    ...
);

这意味着无论 jQuery UI 应用ui-autocomplete 类,它也应该应用your-custom-class

这与任何 jQuery UI 小部件相关,而不仅仅是自动完成。请参阅documentation。

【讨论】:

这是根据文档的最终答案。但需要注意的是,它需要 1.21.1 版本。它似乎不适用于早期版本的自动完成功能。 我认为@ron 意味着需要 1.12.1 版本,因为这是最新版本。只是为了节省其他人对文档的访问。【参考方案4】:

使用此方法将自定义类添加到下拉框

_renderMenu: function( ul, items ) 
    var that = this;
    $.each( items, function( index, item ) 
        that._renderItemData( ul, item );
    );
    $( ul ).find( "li:odd" ).addClass( "odd" );

【讨论】:

我将确切的 sn-p 添加到我的代码中,但什么也没发生。该方法应该何时运行?我在 _create: 方法之后立即添加了【参考方案5】:

我设法通过遵循documentation 并将我的 jquery 版本至少更新到 v1.12.4(jquery classes options 要求)然后相应地更新 jquery-ui 版本(v1.12.1)来让它工作

【讨论】:

以上是关于将自定义类添加到 jQuery UI 的 ui-autocomplete Combobox Div的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义事件添加到 jQuery 插件模式中

是否可以将自定义交互式 UI 元素添加到 EditText?

将自定义颜色添加到 w2ui 单元格 [网格]

如何将自定义的 InfoWindow 添加到 google-maps swift ui 中的标记?

将自定义类插入到由 tinyMCE 通过 jQuery 呈现的 WYSIWIG 输出中(在 Wordpress 中处理带有标题的图像)

将自定义类的集合添加到 Settings.Settings