jquery next()不起作用

jquery next() not working?

本文关键字:不起作用 next jquery      更新时间:2023-09-26

我在这里把问题弄得一团糟。

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>

我还放了一行不起作用的代码。

基本上它隐藏了我想要的元素,但不会在…中淡化下一个元素

有人能根据我的代码提出建议吗?非常感谢!

您在标记中出现错误

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

如果你纠正了这一点,next()就会起作用http://jsfiddle.net/E9cUS/2/

我觉得你的HTML搞砸了。第二个.yesNoItem元素不是同级元素,而是第一个.yesNoItem元素的子元素(右键单击->inspect元素)。

可能是因为<div class="yesNoNext">More</span>(打开div,关闭span)。浏览器将尝试自动更正此问题,并忽略关闭的span标记(至少在检查DOM时似乎是这样)。

如果您更正了HTML,它应该可以工作(至少它应该选择正确的元素)。

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