Javascript object.style.color在create.js.erb中不起作用

Javascript object.style.color not working in create.js.erb

本文关键字:js erb 不起作用 create object style color Javascript      更新时间:2023-09-26

请查看下面的create.js.erb代码,它在创建新投票时逐渐消失。我希望当该值低于0时,总投票数的颜色发生变化。

如果我交换.style,下面的代码可以工作。Color for .css(" Color ", "orange");但是我希望这个改变是永久性的。

<% if @vote.new_record? %>
alert("Failed to create vote: <%= j @vote.errors.full_messages.join(', ').html_safe %>");
<% else %>
var votes = $("<h1><%= @vote.votable.votes_count %></h1>");
<% if @vote.votable.votes_count < 0 %>
$('#<%= "#{votes_count}_#{id}" %>').style.color = "#FF8800";
<% end %>
$('#<%= "#{votes_count}_#{id}" %>').html(votes.fadeIn(1000));
<% end %>
当.style

。使用了color,没有调用fadeIn代码,也没有显示投票结果。

为什么是风格。颜色在这种情况下不起作用?

编辑

感谢anspnm的评论,我已将违规行更改为:

document.getElementById('<%= "#{votes_count}_#{id}" %>').className += " orange-arrows h1";

,它可以工作并改变投票文本的颜色,但是,这个颜色仍然不持久,并且在浏览器刷新时消失。

在加载时呈现元素,检查是否存在投票计数

像这样

<div class="<%= @vote.votable.votes_count < 0 ? 'default-arrows' : 'orange-arrows' %>"> 

因此,在页面刷新时,检查将根据vote_count来处理颜色。

对于ajax调用使用this,它将通过ajax

处理新创建的元素
$('#<%= "#{votes_count}_#{id}" %>').addClass('orange-arrows')