jQuery .find()选择正确的元素但不显示它

时间:2015-06-24 01:15:31

标签: javascript jquery

我不确定如何说出这个问题,所以这里有详细信息:

我在这里写的这个小东西:https://jsfiddle.net/f8thL83r/1/ 只要您只想在顶部菜单中显示元素,效果很好。

点击"平面设计"下的任何内容,它不会在右侧的窗格中显示任何内容。为什么它适用于第一类而不是第二类?

这里有一些代码。我知道我这样做的方式可能很糟糕,但我刚开始用jQuery找到自己的脚。

$('#Menu h3').click(function () {
            $("#Menu ul ul").slideUp();
            if (!$(this).next().is(":visible")) {
                $(this).next().slideDown();
            }
        });

        $('#Menu ul ul li a').click(function (e) {
            var $currPage;
            e.preventDefault();
            $lastPage.hide();
            var j = ($(this).parent().index()); //index of the li to show
            var i = $(this).parent().parent().parent().index(); //index of the ul to show
            $currPage = $('#ServMain .list' + i).find('.page' + j);

            $currPage.show();
            $lastPage = $currPage;
        });

2 个答案:

答案 0 :(得分:1)

问题是ul.list是隐藏的

$('#Menu ul ul li a').click(function (e) {
    var $currPage;
    e.preventDefault();
    $lastPage.hide();
    var j = ($(this).parent().index());
    var i = $(this).parent().parent().parent().index();
    $('#ServMain > ul').not('.list'+i).hide();
    $currPage = $('#ServMain .list' + i).show().find('.page' + j);
    $currPage.show();
    $lastPage = $currPage;
});

演示:Fiddle

答案 1 :(得分:1)

似乎所选页面的其他HTML元素不可见 下面的代码应该修复它们

$('#Menu ul ul li a').click(function (e) {
    e.preventDefault();
    $lastPage.hide();
    var j = ($(this).parent().index());
    var i = $(this).parent().parent().parent().index();
    $('#ServMain ul').not('.list'+i).hide();
    $lastPage = $('#ServMain .list' + i).find('.page' + j);
    $lastPage.parent().show();
    $lastPage.show();
    $lastPage.find('div').show();
});

DEMO