Как отфильтровать дочерний список выбора на основе родительского списка выбора - PullRequest
1 голос
/ 16 июня 2011

У меня есть два списка выбора, стилизация которых выполняется с помощью сценария jQuery UI Selectmenu .Этот сценарий скрывает элементы выбора и записывает свои собственные UL с элементами ввода в виде LI.

Я пытаюсь написать некоторые условия, чтобы, если пользователь выбирает элемент из списка выбора 1, он скрывал некоторые элементы изсписок выбора 2. Вот HTML-код, динамически генерируемый сценарием, скопированным из Firebug:

    <ul id="role-menu" aria-labelledby="role-button" role="listbox" aria-hidden="true" class="ui-selectmenu-menu ui-widget ui-widget-content ui-corner-bottom form-select ui-selectmenu-menu-dropdown">

  <li role="presentation" class="ui-selectmenu-item-selected current">
    <a aria-selected="true" role="option" tabindex="-1" href="#" id="ui-selectmenu-item-343" name="ui-selectmenu-item-343">Current</a>
  </li>

  <li role="presentation" class="past">
    <a aria-selected="false" role="option" tabindex="-1" href="#">Past</a>
  </li>

Вот фрагмент кода jQuery, который я пытаюсь заставить работать.Я не уверен, что использовать, чтобы скрипт слушал изменения в меню, поскольку .change (), по-видимому, только для элементов формы.Сейчас я пытаюсь сделать вывод сценария предупреждением для тестирования, но он не работает.

$('#role-menu ul').change(function () {

    if($('li',this).hasClass('ui-selectmenu-item-selected current')) {
       alert('test');
    }
  });

Есть ли лучший способ для меня сделать это?Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Хорошо, если я вас правильно понимаю, вы хотели бы работать с LI, у которого есть специальный класс, когда ваш выбор изменяется в этом случае, вы можете добавить что-то вроде:

   var liCurrent =  $('li.current', $(this))

вернуть объект jquery из Li выбранного

0 голосов
/ 16 июня 2011

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

...