Нужен селектор jQuery для <ul>внутри <li> - PullRequest
3 голосов
/ 04 июня 2011

Вот мой код XHTML:

<ul id="MenuBar1">
  <li>
    <div class="menuBox">Category 1</div>
  </li>
  <li class="hasasubmenu">
    <div class="menuBox">Category 2</div>
    <ul>
      <li><a href="link.html">Link 1</a></li>
      <li><a href="link.html">Link 2</a></li>
      <li><a href="link.html">Link 3</a></li>
    </ul>
  </li>
  <li class="hasasubmenu">
    <div class="menuBox">Category 3</div>
    <ul>
      <li><a href="link.html">Link</a></li>
      <li><a href="link.html">Link</a></li>
    </ul>
  </li>
  <li>
    <div class="menuBox">Category 4</div>
  </li>
</ul>

На самом деле, я хочу создать меню с парящим взаимодействием, чтобы показать под-ссылки.(в любом случае, стандартное меню:))

А вот мой код JS:

/* menu handler */
$(document).ready(function(){
  $('#MenuBar1 li.hasasubmenu').hover(function(){
    **(selector that select the sub <ul> of the hovered <li>)**.toggle();
  });
});

Можете ли вы помочь мне найти селектор (выделен жирным шрифтом (**) в коде JS)?который будет использоваться для переключения?

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

children () или find ()

/* menu handler */
    $(document).ready(function(){
      $('#MenuBar1 li.hasasubmenu').hover(function(){
        $(this).children('ul').toggle(); // select the ul
      });
    });

Пример: http://jsfiddle.net/niklasvh/2GY4V/

2 голосов
/ 04 июня 2011

Почему вы используете для этого jQuery? Вы можете сделать это, используя только CSS http://jsfiddle.net/XBdAL/

<ul>
   <li>List Item 1</li>
   <li>List Item 1
      <ul>
         <li>List Item 2</li>
         <li>List Item 2
      </ul>
   </li>
</ul>

и CSS

ul {
        list-style: none;
        width: 150px;
        }

li {
        position: relative;
        border: 1px solid #ffffff;
        }

li:hover {
        z-index: 1;
        cursor: pointer;
        }

ul ul {
        position: absolute;
        display: none;
        left: 140px;
        top: 4px;
        }

li:hover ul ul {
        display: none;
        }

li:hover ul, li:hover li:hover ul {
        display: block;
        }

Я должен использовать только CSS, потому что есть некоторые пользователи / брокеры, которые не поддерживают JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...