【问题标题】:How to filter child select list based on a parent select list如何根据父选择列表过滤子选择列表
【发布时间】:2011-06-16 17:17:57
【问题描述】:

我有两个使用jQuery UI Selectmenu script 设置样式的选择列表。该脚本隐藏了选择元素,并以输入元素作为 LI 写出它自己的 UL。

我正在尝试编写一些条件,以便如果用户从选择列表 1 中选择一个元素,它会隐藏选择列表 2 中的一些元素。这是由从 Firebug 复制的脚本动态生成的 HTML:

    <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 sn-p。我不确定使用什么来让脚本监听菜单中的更改,因为 .change() 似乎仅适用于表单元素。现在我正在尝试使脚本输出警报以进行测试,但它不起作用。

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

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

有没有更好的方法让我这样做?提前致谢!

【问题讨论】:

    标签: jquery jquery-ui jquery-selectors css-selectors


    【解决方案1】:

    好的,如果我对您的理解正确,您希望在您的选择发生变化时使用具有特殊类的 LI,在这种情况下,您可以添加如下内容:

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

    返回被选中的李的jquery对象

    【讨论】:

      【解决方案2】:

      通过查看您的代码,我会问几个问题 您的 UL 角色菜单如何变化?你的行动是什么?您在列表中单击 LI 吗?在这种情况下,您可以关联 LI 的点击事件。换句话说,您到底想达到什么目的?我敢肯定,如果你能更好地解释你的案例,你会失去答案。

      【讨论】:

      • @FrenchilnaLa:是的,您单击
      猜你喜欢
      • 2023-01-03
      • 2020-10-09
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      相关资源
      最近更新 更多