【问题标题】:jQuery Accordion stops routed links from working in ListViewjQuery Accordion 阻止路由链接在 ListView 中工作
【发布时间】:2013-02-26 15:47:19
【问题描述】:

我有一个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>

【问题讨论】:

  • 你试过转义双引号吗? &lt;a class="head" href="&lt;%#: GetRouteUrl(\"ProductsByCategoryRoute\",
  • 不好。当我这样做时,它会出错
  • 代码执行完毕后能否贴出html?

标签: c# jquery asp.net css


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

这解决了它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    • 2023-04-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多