изменение существующего меню, чтобы иметь подменю с помощью jquery - PullRequest
1 голос
/ 12 ноября 2010

У меня есть следующая структура меню, определенная на главной странице:

<asp:ContentPlaceHolder ID="SubNavigation" runat="server">
    <ul>
    <li><%= RenderLink("item 1", "/item1/", null, null) %></li>
    <li><%= RenderLink("item 2", "/item2/blah/", null, "nofollow")%></li>
    <li><%= RenderLink("item 3", "/item3/blah/", null, "nofollow") %></li>
    </ul>
</asp:ContentPlaceHolder>

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

Теперь я хочу добавить подменю, например, так:

<asp:ContentPlaceHolder ID="SubNavigation" runat="server">
    <ul>
    <li><%= RenderLink("item 1", "/item1/", null, null) %></li>
    <li><%= RenderLink("item 2", "/item2/blah/", null, "nofollow")%></li>
    <li><%= RenderLink("item 3", "/item3/blah/", null, "nofollow") %></li>
        <li class="topitem">
            <%= RenderLink("Item 4", "/Item4/blah/", null, null) %>
            <ul class="sublist">
                <li class="subitem">
                    <%= RenderLink("subitem4a", "/subitem4a/blah/", null, null) %></li>
                <li class="subitem">
                    <%= RenderLink("subitem4b", "/subitem4b/blah/", null, null) %></li>
                <li class="subitem">
                    <%= RenderLink("subitem4c", "/subitem4c/blah/", null, null) %></li>
            </ul>
        </li>
    </ul>

Я пытаюсь использовать jquery, чтобы, когда пользователь нажимает на элементс классом topitem, пользователь перенаправляется на соответствующий URL, и затем отображается подменю, как только пользователь покидает страницу, которая не является topitem или какими-либо подэлементами, подменю закрыто.

Я былпробуя следующий jquery, но не испытывал никакой радости ...

$(document).ready(function() {
    $('li.topitem > a:first-child').siblings().toggle();
});

очевидно, что это имеет эффект, показывающий / скрывающий любые li.topitems и его братьев и сестер, что не хорошо, если есть другойподменю, определенное в структуре моего меню.

Как лучше всего справиться с этим в jQuery?

1 Ответ

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

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

Если вы хотите, чтобы подменю появлялось на определенной странице, вы должны выполнить элементы списка через какой-то цикл, который проверяет, находитесь ли вы на нужной странице.Код, который вы разместили здесь, в основном просто HTML-разметка.

Я не знаю ASP, но в PHP это довольно просто с помощью цикла if / else.В цикле if вы можете сделать условие переменной, передаваемой через URL, который получает ASP.

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