2010-11-16 3 views
0

пытается создать кнопку, которая будет иметь следующую опцию в selectmenu, которая имеет $ selectmenu, назначенный ей.выберите следующую опцию в jquery 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.

+0

Вы должны разместить ссылку на плагин, так как это не является частью ядра JQuery. –

+0

@Nick Craver: 'http: // github.com/fnagel/jquery-ui' – Lorenzo

ответ

0

как меню должно было загрузить новую страницу для каждого варианта я просто схватил первоначальный вариант 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

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

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

+0

Напоминание созданных дубликатов, но ваше сообщение привело меня к ответу так спасибо! – v3nt

3

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

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

где theIndex является индексом, основанным нуля опций

Пожалуйста, обратите внимание, что если вы изменяете во время выполнения в <option> список внутри выбора, вы должны полностью уничтожить и создать плагин с нуля. Следующая функция, например, делает Ajax вызова, чтобы обновить список опций из отборного элемента

$.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

У меня была аналогичная проблема. Чтобы обновить selectmenu, вам не нужно называть «destroy». Просто позвоните $ ('# mySelect'). Selectmenu() Когда я назвал «destroy», по какой-то причине он испортил ширину выпадающего списка –

0

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

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

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

Смежные вопросы