Jquery向上滑动并向下滑动切换

时间:2014-12-03 05:25:18

标签: javascript jquery html css asp.net-mvc-4

我正在使用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() {
        //...........
    });
});

但这不起作用。

1 个答案:

答案 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