2

我正在开发一个画廊,我在其中使用箭头键导航上一个和下一个列表项。现在使用.next().prev()我能够很好地导航,但是当最后一个列表项在那里并且 jquery 转到时问题就开始了.Next()

我怎样才能停止一个不会在最后一个项目之后进行的进程。

我的意思是next()在最后一个 Li 之后应用的函数。这是我的示例代码

  var ul = $('#thumbsList');
ul.find('li').first().addClass('current');

这个增加了一个类。

    $(document).ready(function () {
    $('#nextHandler').click(function () {

        var nextListItem = ul.find('li.current').next();

        ul.find('li.current').removeClass('current');
        nextListItem.addClass('current');
        var imagePath = ul.find('li.current').children('img').data("fullsrc");
        // Setting Image Path to Current Next Image path
        $("#fullImagePlaceholder").attr("src", imagePath);


    });
});

这可以完成工作。 但是当它跳过最后一个 LI 时问题就开始了。如何阻止它。谢谢。

4

3 回答 3

1

您需要测试是否有下一个使用,如下if (nextListItem.length > 0)所述:

 var nextListItem = ul.find('li.current').next();

    if (nextListItem.length > 0)
    {
      ul.find('li.current').removeClass('current');
      nextListItem.addClass('current');
      var imagePath = ul.find('li.current').children('img').data("fullsrc");
      // Setting Image Path to Current Next Image path
      $("#fullImagePlaceholder").attr("src", imagePath);
    }
于 2013-10-14T08:37:40.733 回答
1

你有这个

 var nextListItem = ul.find('li.current').next();

你可以检查

if (nextListItem.length) {
// .. do the job
}
于 2013-10-14T08:38:52.077 回答
-1

如果仍然有项目,您可以随时检查 .length 是否大于 0。这样您就可以在任何对象中导航和查找元素。

于 2013-10-14T16:04:01.613 回答