Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何检查Rails中的当前循环状态?_Jquery_Ruby On Rails_Twitter Bootstrap_Loops - Fatal编程技术网

Jquery 如何检查Rails中的当前循环状态?

Jquery 如何检查Rails中的当前循环状态?,jquery,ruby-on-rails,twitter-bootstrap,loops,Jquery,Ruby On Rails,Twitter Bootstrap,Loops,我将Bootstrapcarousel与Rails一起使用,如下所示: <div class="carousel-inner"> <% @post.gallery_images.each do |i| %> <div class="item"> <%= image_tag i.image.url, class: 'img-responsive' %> </div> <% end %&

我将
Bootstrap
carousel与
Rails
一起使用,如下所示:

<div class="carousel-inner">

    <% @post.gallery_images.each do |i| %>
    <div class="item">
       <%= image_tag i.image.url, class: 'img-responsive' %>
    </div>
    <% end %>

</div>

如何与
Rails
循环一起动态更新
active
类?

正如Amadan所暗示的,您必须通过DOM操作(即JavaScript)更改活动项。如果希望第一个项目为初始活动项目:

<div class="carousel-inner">
    <% @post.gallery_images.each.with_index do |img, index| %>
    <% if index == 0 %>
    <div class="item active">
    <% else %>
    <div class="item">
    <% end %>
       <%= image_tag img.image.url, class: 'img-responsive' %>
    </div>
    <% end %>
</div>


当然,还有比这更优雅的解决方案。但是这只是给你一些快速的帮助。

虽然Rails看起来是流行的选项,但是你可以用JavaScript轻松地做到这一点

在模板底部添加以下代码(任意一行)

<script type="text/javascript">
/* add 'active' class to the first item */
$('.carousel-inner .item').first().addClass('active');

/* add 'active' class to the last item */
$('.carousel-inner .item').last().addClass('active');
</script>

/*将“活动”类添加到第一项*/
$('.carousel-inner.item').first().addClass('active');
/*将“活动”类添加到最后一项*/
$('.carousel-inner.item').last().addClass('active');

在什么条件下需要添加
active
类?不能使用Ruby更改活动元素,必须使用JavaScript来更改。在Ruby中,您只能设置初始活动元素。你想要哪个?第一个?都是吗?(您的最后一个代码段执行后一项操作,首先将所有代码都设置为
active
)。
<script type="text/javascript">
/* add 'active' class to the first item */
$('.carousel-inner .item').first().addClass('active');

/* add 'active' class to the last item */
$('.carousel-inner .item').last().addClass('active');
</script>