改变让孩子们在jQuery中拥有GrandChildren

时间:2011-11-27 18:42:21

标签: jquery

这是javascript以外的内容。

    function showContent(layer, animate) {

        $("#background").show();
        $("footer").hide();
        $("#announcement").hide();

        $("#content").html($("#" + layer + "_html").comments());

        $("nav").children().each(function() {
            if ($(this).attr("id").search(layer) == -1) {
                $(this).addClass("inactive");
            } else {
                $(this).removeClass("inactive");
            }
        });

        if (animate == true) {
            $('html,body').animate({scrollTop: $("nav").offset().top - 16 - 40}, 200, "swing");
        }

        // setUpHover();

        setupFullScreen();
        setupImageViewers();
        setupHovers();

        // Load analytics tracking
        setTimeout(function() {
            $("#tracker").attr("src", "/track/" + layer + "/")
        }, 500);

        window.location.hash = layer;
    }

    // Set up the on click functions for the different menus
    $("nav").children().click(function() {
        showContent($(this).attr("id").split("_")[1], true);
    });

以下是html的摘录:

http://pastie.org/2929494

现在这是我的问题。使用js和html,它可以实现它的设想。但是,当我在导航中添加一个必需的div时,它会断开:

http://pastie.org/2929497

我想问题出现在上面的原始js中,有两行关于(“nav”)。孩子们用我的新代码想象他们实际上现在是孙子孙女等等。所以很可能需要对这两行进行微调,但不确定是什么。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我相信你问的问题是:

$("nav").children().click(function() {

你可以这样做:

$("nav").children().children().click(function() {

获得“大孩子”。但是,我可能会使用一个类来改变它的弹性。

$("nav").find(".navLink").click(function() {

其中navLink是您要添加到要点击的每个元素的类。