单击上一个或下一个按钮,获取数组中的下一个或上一个元素

时间:2016-02-19 01:20:17

标签: javascript php jquery

我有以下问题:

我有两个div,只显示其中一个,当我点击下一个或上一个按钮时,显示另一个,可见的那个设置为隐藏。显示的div具有" active"类。现在,我需要获得具有此类的div的id。问题是我总是得到前一个的id,因为当我点击按钮时,我首先获得id,然后更改类......我不知道为什么,如果更改类的代码也是如此是在获取id的代码之前写的。

我该如何解决这个问题?

<div class="item <?php if($i == 1) echo 'active';?>" id="<?php echo $dati['id'];?>">
            <div class="container">
              <div class="carousel-content">
                <h1><?php echo $dati['titolo'];?></h1>
                <p class="lead">
                  <?php echo $desc_feed;?>
                </p>
              </div>
            </div>
          </div>


 <a class="prev" href="#main-slider" id="next-carousel" data-slide="prev"><i class="icon-angle-left"></i></a>
    <a class="next" href="#main-slider" id="prev-carousel" data-slide="next"><i class="icon-angle-right"></i></a>

function show_feed_data(id)
{
    get_feed_data(id);
}




$( "#prev-carousel" ).click(function() {
    var id_feed_to_show = $(".active").attr("id");
    get_feed_data(id_feed_to_show);
});

$( "#next-carousel" ).click(function() {
    var id_feed_to_show = $(".active").attr("id");
    get_feed_data(id_feed_to_show);
});
</script>

1 个答案:

答案 0 :(得分:0)

这是因为你在获取当前active元素的ID之前会触发轮播以更改类。

让我们每个轮播div都是兄弟姐妹(彼此相邻)。你可以这样做:

$( "#prev-carousel" ).click(function() {
    var id_feed_to_show = $(".active").prev().attr('id');
    get_feed_data(id_feed_to_show);
});

$( "#next-carousel" ).click(function() {
    var id_feed_to_show = $(".active").next().attr("id");
    get_feed_data(id_feed_to_show);
});