выберите следующую опцию в jquery selectmenu - PullRequest
0 голосов
/ 16 ноября 2010

пытается создать кнопку, которая перейдет к следующей опции в меню выбора, которому назначено $ selectmenu.

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');

работает со стандартным меню выбора HTML, но не тогда, когда ему назначено jquery $ selectmenu.

$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});

Есть идеи, как я могу контролировать выбор?

любая помощь приветствуется ...

Dan.

Ответы [ 4 ]

3 голосов
/ 16 ноября 2010

Вы должны использовать метод плагина value.

$("select#toolMenu").selectmenu("value", theIndex);

, где theIndex - это индекс параметров, начинающийся с нуля

Обратите внимание: если вы изменяете во время выполнения<option> список внутри выбора, который вы должны полностью уничтожить и создать плагин с нуля.Например, следующая функция выполняет ajax-вызов для обновления списка опций элемента select

$.ajax({
    type: "post",
    dataType: "json",
    url: 'your_url',
    async: false,
    data: {},
    beforeSend: function() {
        $("#mySelect").selectmenu('disable'); 
    },
    success: function (response) {
        $('#mySelect').html('');
        $.each(response, function (i, data) {
            $('#mySelect').append($("<option></option>").attr("value", data.Value).text(data.Text));
        });
        $('#mySelect').selectmenu('destroy').selectmenu();
    }
});
0 голосов
/ 04 сентября 2012

@ Лоренцо частично прав. Вы можете использовать метод value или index для изменения текущей активной опции.

При изменении выбора (добавление, изменение, удаление параметров) вам не нужно уничтожать повторное выделение меню выбора, а снова используйте myElement.selectmenu () для уже инициализированного элемента.

Пожалуйста, смотрите вики для получения дополнительной информации: https://github.com/fnagel/jquery-ui/wiki/Selectmenu

0 голосов
/ 16 ноября 2010

так как меню предназначалось для загрузки новой страницы для каждой опции, я просто взял исходную опцию val () и перешел на следующую страницу, где меню автоматически перезапустится с dom.

        jqueryMenu()

        $('a.previous').click(function(){

            val = $('option:selected', 'select').previous('option').val();
            window.location=val;

        })

        $('a.next').click(function(){

            val = $('option:selected', 'select').next('option').val();
            window.location=val;

        })
0 голосов
/ 16 ноября 2010

После изменения выбранной опции вам нужно будет снова вызвать функцию плагина.

Плагин добавит некоторые стилизованные элементы HTML на основе раскрывающегося списка. Как только он будет обработан, вам будет сложно изменить это вручную, используя ваш собственный код. Возможно, вам придется снова вызвать функцию в раскрывающемся списке, который является измененным.

...