0

我有一个ListView用作网站上的导航菜单。我想添加一些 Jquery 效果让它看起来不错。我添加了这个脚本并且 Jquery 工作但是当我点击链接或者例如如果我点击

<a class="head" href="<%#: GetRouteUrl("ProductsByCategoryRoute", new {categoryName = Item.CategoryName}) %>">
                        <%#: Item.CategoryName %>
                    </a>

我的子菜单下拉并变得可见,但它不执行href. 与显示的子链接相同。当我单击它时,它会空回发。因为此菜单会根据您单击的内容进行查询并显示结果。我应该在服务器端做这些手风琴效果吗?

为什么让这个 Jquery 阻止我的路由链接工作。

jquery脚本:

<script>
 var $open = $();
        $('.head').click(function (e) {
            e.preventDefault();
            $open.slideUp();
            $open = $(this).closest('li').find('.content');
            $open.not(':animated').slideToggle();
        });
    </script>

标记:

            <asp:ListView ID="categoryList" runat="server"
    OnItemDataBound="brandList_ItemDataBound" ItemType="E_Store_Template.Models.Category" SelectMethod="GetCategories">
    <LayoutTemplate>
        <ul style="list-style-type: none;">
            <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
        </ul>
    </LayoutTemplate>
    <ItemTemplate>
        <li style="text-align: left;">
            <b style="font-size: large; font-style: normal">
                <a class="head" href="<%#: GetRouteUrl("ProductsByCategoryRoute", new {categoryName = Item.CategoryName}) %>">
                    <%#: Item.CategoryName %>
                </a>
            </b>
            <asp:ListView ID="brandList" runat="server" ItemType="E_Store_Template.Models.Brand">
                <LayoutTemplate>
                    <ul style="list-style-type: none; text-align: left;">
                        <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
                    </ul>
                </LayoutTemplate>
                <ItemTemplate>
                    <li>
                        <a class="content" href="<%#: GetRouteUrl("ProductsByCatBrandRoute",  new { brandName = Item.BrandName })%>">
                            <%#: Item.BrandName %>
                        </a>
                    </li>
                </ItemTemplate>
            </asp:ListView>
        </li>
    </ItemTemplate>
</asp:ListView>

来源

所有产品

<ul style="list-style-type: none;">

<li style="text-align: left;">
    <b style="font-size: large; font-style: normal">
        <a class="head"  href="/ProductList/Rods">
            Rods
        </a>
    </b>

            <ul style="list-style-type: none; text-align: left;">

            <li>
                <a class="content" href="">
                    Brand1
                </a>
            </li>

            <li>
                <a class="content" href="">
                    Brand2
                </a>
            </li>

            </ul>

</li>

<li style="text-align: left;">
    <b style="font-size: large; font-style: normal">
        <a class="head"  href="/ProductList/Reels">
            Reels
        </a>
    </b>

            <ul style="list-style-type: none; text-align: left;">

            <li>
                <a class="content" href="">
                    Brand1
                </a>
            </li>

            <li>
                <a class="content" href="">
                    Brand2
                </a>
            </li>

            <li>
                <a class="content" href="">
                    Brand3
                </a>
            </li>

            </ul>

</li>

<li style="text-align: left;">
    <b style="font-size: large; font-style: normal">
        <a class="head"  href="/ProductList/Tackle">
            Tackle
        </a>
    </b>

            <ul style="list-style-type: none; text-align: left;">

            <li>
                <a class="content" href="">
                    Brand1
                </a>
            </li>

            <li>
                <a class="content" href="">
                    Brand2
                </a>
            </li>

            <li>
                <a class="content" href="">
                    Brand3
                </a>
            </li>

            </ul>

</li>

<li style="text-align: left;">
    <b style="font-size: large; font-style: normal">
        <a class="head"  href="/ProductList/Apparel">
            Apparel
        </a>
    </b>

            <ul style="list-style-type: none; text-align: left;">

            <li>
                <a class="content" href="">
                    Brand1
                </a>
            </li>

            </ul>

</li>

</ul>

    </section>
4

1 回答 1

0
<script>
 var $open = $();
        $('.head').click(function (e) {
           // e.preventDefault();
            $open.slideUp();
            $open = $(this).closest('li').find('.content');
            $open.not(':animated').slideToggle();
        });
    </script>

这解决了它!

于 2013-02-27T01:45:35.263 回答