我正在使用ASP.NET MVC 4.我的剃刀视图中有一个嵌套列表,如下所示:
<ul class="nav" id="product-cat-menu">
<li><a href="/Products/Index?category=2002">Dental <i class="fa fa-plus-square-o rightdown"></i></a>
<ul>
<li><a href="/Products/Index?category=2004">Materials <i class="fa fa-plus-square-o rightdown"></i></a>
<ul>
<li><a href="/Products/Index?category=2011">Pulp<i class="fa fa-plus-square-o rightdown"></i></a></li>
<li><a href="/Products/Index?category=3011">Etchants <i class="fa fa-plus-square-o rightdown"></i></a>
</ul>
<li><a href="/Products/Index?category=2006">Medicines <i class="fa fa-plus-square-o rightdown"></i></a>
<ul>
<li><a href="/Products/Index?category=2011">Pulp<i class="fa fa-plus-square-o rightdown"></i></a></li>
<li><a href="/Products/Index?category=3011">Etchants <i class="fa fa-plus-square-o rightdown"></i></a>
</ul>
</li>
</ul>
</li>
<li><a href="/Products/Index?category=2003">Oral <i class="fa fa-plus-square-o rightdown"></i></a></li>
</ul>
主要的CSS是:
#product-cat-menu li {
cursor: pointer;
position: relative;
}
#product-cat-menu li .rightdown {
position: absolute;
right: 0;
}
#product-cat-menu ul {
display: none;
}
#product-cat-menu li ul li {
padding: 5px 0 5px 25px;
width: 100%;
}
jQuery就像:
$(document).ready(function () {
$("#product-cat-menu a").click(function () {
$("#product-cat-menu ul").slideUp();
if (!$(this).next().is(":visible")) {
$(this).next().slideDown();
}
});
});
问题是,当点击li
时,它会向下滑动子列表,但在进入控制器操作后,它会向上滑动。我希望在页面刷新后显示向下滑动部分。
为此我也尝试以下代码:
$(document).ready(function () {
$("#product-cat-menu a .rightdown").click(function() {
//...........
});
});
但这不起作用。
答案 0 :(得分:1)
我认为您需要阻止html锚标记(<a>
)的默认行为。
缺少的行是:
evt.preventDefault();
完整的代码示例如下:
$(document).ready(function () {
$("#product-cat-menu a").click(function (evt) {
evt.preventDefault();
$("#product-cat-menu ul").slideUp();
if (!$(this).next().is(":visible")) {
$(this).next().slideDown();
}
});
});
您可以在JSFiddle中看到这一点: DEMO