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

Adding a Custom Class to jQuery UI's ui-autocomplete Combobox Div

本文关键字:ui-autocomplete Combobox Div UI jQuery 自定义 添加      更新时间:2023-09-26

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

$("#auto").autocomplete({
    source: ...
}).autocomplete( "widget" ).addClass( "your_custom_class" );

只需使用 classes 参数:

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

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

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

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

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

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

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

我设法通过遵循文档并将我的 jquery 版本至少更新到 v1.12.4(jquery 类选项需要),然后相应地更新 jquery-ui 版本(v1.12.1)