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>