Как обрабатывать добавленные опции с помощью multilineSelectmenu (JQuery UI Widget)

Я хочу использовать расширение виджета jquery для multilineSelectmenu ( https://github.com/ainterpreting/jquery-multilineSelectmenu). Тем не менее, после открытия поля выбора хотя бы один раз, новые параметры (добавленные нажатием кнопки "Добавить элемент") не отображаются в окне. Вот пример. И следующее содержание multilineSelectmenu

/* this is the custom selectmenu widget extension add multiline and css theming support */
var multilineSelectmenu = $.widget("ui.multilineSelectmenu", $.ui.selectmenu, {
    _setText: function (element, value) {
        if (value) {
            if (value.indexOf('|') !== -1) {
                var lines = value.split('|');
                value = '<span class="ui-selectmenu-menu-item-header">' + lines[0].trim() + '</span>';
                for (var i = 1; i < lines.length; i++) {
                    value = value + '<span class="ui-selectmenu-menu-item-content">' + lines[i].trim() + '</span>';
                }
            }
            element.html(value);
        } else {
            element.html("&#160;");
        }
    }
});

Я ищу эту проблему несколько часов, но, поскольку я мало что знаю о jquery-ui и его виджете, я не смог решить сам. Пожалуйста помоги! Заранее спасибо.

1 ответ

Решение

Попробуйте уничтожить и воссоздать виджет после добавления новой опции / параметров:

$('#button').click(function(){
        $('#select').append($('<option>').html('new| option'));
        $("#select").multilineSelectmenu('destroy');
        $("#select").multilineSelectmenu();  
 })

Смотрите здесь, например

Другие вопросы по тегам