为什么每次点击的增量都不适用于jQuery?

时间:2013-11-05 08:27:33

标签: javascript jquery

我尝试在每次点击时增加,但是我仍然坚持使用这个原始代码:

$('.de img').click(function() {
            scroll = $('body').scrollTop();
            imgJump = $(this).prevAll().length;
        var $this = $(this),
            bigImgs = $('.biggie:hidden').find('img:hidden');
            console.log(bigImgs[imgJump]);
        $('.de').fadeOut(400, function () {
                $('body').scrollTop(0);
                $('.biggie').fadeIn(400);
            });

        $(bigImgs[imgJump]).fadeIn(400);
        $('.biggietext').fadeIn(400);
        $('.number').text(imgJump + 1);
}); 

$('.biggie img').click(function(){
    var imgIs = imgJump + 1,
        imgIss = imgIs++;

    if ($(this).nextAll().length > 0) {
        $(this).fadeOut(400, function() {
            $(this).next().fadeIn(400);
        });
        $('.number').text(imgIss);                  
        }
});

这是一个更简单版本的jsFiddle:http://jsfiddle.net/nU63B/3/

为什么这不起作用?

谢谢!

1 个答案:

答案 0 :(得分:1)

由于你的 if satement 没有被执行,所以不会增加

if ($(this).nextAll().length > 0) { // $(this).nextAll().length 
                                    //returns 0 and hence not working

您只有一个元素( p 标记),并且没有与之关联的sibilings,因此其长度返回0.

  

nextAll() 获取匹配组中每个元素的所有后续兄弟   元素,可选择由选择器过滤。

将其更改为

if ($(this).nextAll().length == 0) { 

工作fiddle