jquery next()不工作?

时间:2012-03-14 16:25:37

标签: javascript jquery

我在这里解决了我的问题。

http://jsfiddle.net/E9cUS/1/

JavaScript的:

$('.top').click(function () {
    var thisPage = $(this).closest('.yesNoItem');
    $('.yesNoTick').stop().animate({"opacity" : 1},400, function () {
        thisPage.find('.no .top').stop().animate({"opacity" : 0},400, function () {
            $(this).css("display", "none");
        });
    });
});

$('.yesNoNext').click(function () {
    $(this).closest('.yesNoItem').stop().animate({"opacity" : 0},400, function () {
        //This isnt working? Please advise?
        $(this).next('.yesNoItem').stop().animate({"opacity" : 1},400);
    });
});

HTML:

<div id="stage">
    <div class="yesNoOuter">

        <div class="yesNoItem" style="opacity:1;">
            <div class="yesNoContainer yes">
                <div class="top">
                    <div class="yesNoTick"></div>
                </div>
                <div class="bottom">
                </div>

            </div>
            <div class="yesNoContainer no">
                <div class="top">
                    <div class="yesNoTick"></div>
                </div>
                <div class="bottom">
                    <p>Text 1</p>
                    <div class="yesNoNext">More</span>
                </div>
            </div>
        </div>

        <div class="yesNoItem">
            <div class="yesNoContainer yes">
                <div class="top">
                    <div class="yesNoTick"></div>
                </div>
                <div class="bottom">
                </div>
            </div>
            <div class="yesNoContainer no">
                <div class="top">
                    <div class="yesNoTick"></div>
                </div>
                <div class="bottom">
                    <p>Text 2</p>
                    <div class="yesNoNext">More</span>
                </div>
            </div>
        </div>
    </div>
</div>

我还把代码行放在了不起作用。

基本上它隐藏了我想要的元素,但是没有淡化下一个......

任何人都可以根据我的代码提出建议吗?非常感谢!

2 个答案:

答案 0 :(得分:3)

您的标记出错了

<div class="yesNoNext">More</span>

如果你更正,next()有效http://jsfiddle.net/E9cUS/2/

答案 1 :(得分:2)

我认为你的HTML搞砸了。第二个.yesNoItem元素不是兄弟,而是第一个.yesNoItem元素的(右键单击 - &gt; inspect元素)。

可能是因为<div class="yesNoNext">More</span>(打开div,关闭span)。浏览器将尝试自动更正此问题,并忽略关闭span标记(如果您检查DOM,至少会出现这种情况)。

如果你更正你的HTML它应该工作(至少它应该选择正确的元素)。

如果它们实际上应该嵌套,那么.next()无论如何都是错误的方法。