为什么jQuery prev在这种情况下不起作用?

时间:2011-12-10 17:42:31

标签: jquery

我有一组部分,每个部分都有上一个和下一个导航按钮,以导航到共同响应部分。

<section id="sec1">
<img src="css/images/prev-btn.png" class="prev" />
<img src="css/images/next-btn.png" class="next" />
</section>
<div class="seperator"></div>
<section id="sec2">
    <img src="css/images/prev-btn.png" class="prev"/>
    <img src="css/images/next-btn.png" class="next" />
</section>
<div class="seperator"></div>
<section id="sec3">
<img src="css/images/prev-btn.png" class="prev"/>
<img src="css/images/next-btn.png" class="next" />
</section>

下一个按钮正常工作,使用以下代码:

$('.next').click(function () {
    var next = $(this).parent().next();
    $.scrollTo(next, 1500, { easing: "easeInOutCirc" });

});

但是prev按钮不会导航到prev元素。

我试过了:

$('.prev').click(function () {
    var prev= $(this).parent().prev();
    $.scrollTo(prev, 1500, { easing: "easeInOutCirc" });
});

$('.prev').click(function () {
    var prev= $(this).parent().prevAll().last();
    $.scrollTo(prev, 1500, { easing: "easeInOutCirc" });

});

$('.prev').click(function () {
    var prev= $(this).parent().prev('section');
    $.scrollTo(prev, 1500, { easing: "easeInOutCirc" });

});

我做错了什么?

1 个答案:

答案 0 :(得分:3)

这应该为你做

var prev = $(this).parent().prevAll("section").attr("id");

请注意prevAll()似乎返回按this的距离排序的元素,因此最接近的元素将是第一个。由于attr()返回第一个匹配元素的属性,因此无需在其上调用first()last()。魔术只是发生了。