Javascript 我可以使用Ajax切换div吗? 我有一个投票系统,用于一个模型细分,如果用户点击一个图标投票,那么他的IP地址被添加到一个列表中,这会阻止他再次投票,而空白投票图标被一个绿色投票图标所取代,这两个图标都是在分立的div中定义的。我想把这个过程简化一下。我已经知道了如何使用Ajax更新投票计数,但是有没有办法在单击按钮时切换投票图标div
到目前为止,我得到的是:假设我想将Javascript 我可以使用Ajax切换div吗? 我有一个投票系统,用于一个模型细分,如果用户点击一个图标投票,那么他的IP地址被添加到一个列表中,这会阻止他再次投票,而空白投票图标被一个绿色投票图标所取代,这两个图标都是在分立的div中定义的。我想把这个过程简化一下。我已经知道了如何使用Ajax更新投票计数,但是有没有办法在单击按钮时切换投票图标div,javascript,ruby-on-rails,ruby,ajax,ruby-on-rails-4,Javascript,Ruby On Rails,Ruby,Ajax,Ruby On Rails 4,到目前为止,我得到的是:假设我想将切换到 views/things/show.html.erb: <% if ((!@subratingip.include? request.remote_ip) && (!@subratingunip.include? request.remote_ip)) %> <div id="subratings" > <div id="<%= subrating.name %>
切换到
views/things/show.html.erb:
<% if ((!@subratingip.include? request.remote_ip) && (!@subratingunip.include? request.remote_ip)) %>
<div id="subratings" >
<div id="<%= subrating.name %>"><%= number_to_percentage(subrating.rating, precision: 0) %></div>
<div id="<%= subrating.name %>upz">
<a id="<%= subrating.name.downcase %>_link"><%= link_to image_tag("UpArrowGray.png", alt: "votedown", class: 'uparrowsub' ), upvote_subrating_path(:id => subrating.id), method: :get %></a>
</div>
<script type="text/javascript">
$("#<%= subrating.name.downcase %>_link").click(function () {
$.get( "<%= upvote_subrating_path(:id => subrating.id) %>", function( data ) {
$('#<%= subrating.name %>').html(data + ' %');
});
});
</script>
尝试将这一行
$(“#upz).attr(“id”,“voted”)
添加到您的单击中,这将更改div的id。但是,您似乎是根据div内的内容设置图像,这意味着您应该删除/隐藏div#upz并添加/显示div#voted
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
});
$(“#upz”).attr(“id”,“投票”);
});
尝试添加此行$(“#upz).attr(“id”,“投票”)
单击可更改div的id。但是,您似乎是根据div内的内容设置图像,这意味着您应该删除/隐藏div#upz并添加/显示div#投票
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
});
$(“#upz”).attr(“id”,“投票”);
});
尝试将这一行$(“#upz).attr(“id”,“voted”)
添加到您的单击中,这将更改div的id。但是,您似乎是根据div内的内容设置图像,这意味着您应该删除/隐藏div#upz并添加/显示div#voted
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
});
$(“#upz”).attr(“id”,“投票”);
});
尝试添加此行$(“#upz).attr(“id”,“投票”)
单击可更改div的id。但是,您似乎是在根据div内的内容设置图像,这意味着您应该删除/隐藏div#upz并添加/显示div#
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
});
$(“#upz”).attr(“id”,“投票”);
});
更好的解决方案是使用基于类的选择器和CSS
<div id="subratings">
<div class="subrating">
<ul class="actions">
<li class="upvote"><%= link_to("Upvote", upvote_subrating_path(subrating)) %></li>
<li class="downvote disabled"><%= link_to("Downvote", downvote_subrating_path(subrating)) %></li>
</ul>
</div>
</div>
更好的解决方案是使用基于类的选择器和CSS
<div id="subratings">
<div class="subrating">
<ul class="actions">
<li class="upvote"><%= link_to("Upvote", upvote_subrating_path(subrating)) %></li>
<li class="downvote disabled"><%= link_to("Downvote", downvote_subrating_path(subrating)) %></li>
</ul>
</div>
</div>
更好的解决方案是使用基于类的选择器和CSS
<div id="subratings">
<div class="subrating">
<ul class="actions">
<li class="upvote"><%= link_to("Upvote", upvote_subrating_path(subrating)) %></li>
<li class="downvote disabled"><%= link_to("Downvote", downvote_subrating_path(subrating)) %></li>
</ul>
</div>
</div>
更好的解决方案是使用基于类的选择器和CSS
<div id="subratings">
<div class="subrating">
<ul class="actions">
<li class="upvote"><%= link_to("Upvote", upvote_subrating_path(subrating)) %></li>
<li class="downvote disabled"><%= link_to("Downvote", downvote_subrating_path(subrating)) %></li>
</ul>
</div>
</div>
事实上,我可以将图像作为html插入:
<script type="text/javascript">
$("#<%= subrating.name.downcase %>_link").click(function () {
$.get( "<%= upvote_subrating_path(:id => subrating.id) %>", function( data ) {
$('#<%= subrating.name %>').html(data + ' %');
$('#<%= subrating.name %>'upz).html( '<%= image_tag("UpArrowGreen.png" %>');
});
});
</script>
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
$('#'upz).html('');
});
});
事实证明,我可以将图像作为html插入:
<script type="text/javascript">
$("#<%= subrating.name.downcase %>_link").click(function () {
$.get( "<%= upvote_subrating_path(:id => subrating.id) %>", function( data ) {
$('#<%= subrating.name %>').html(data + ' %');
$('#<%= subrating.name %>'upz).html( '<%= image_tag("UpArrowGreen.png" %>');
});
});
</script>
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
$('#'upz).html('');
});
});
事实证明,我可以将图像作为html插入:
<script type="text/javascript">
$("#<%= subrating.name.downcase %>_link").click(function () {
$.get( "<%= upvote_subrating_path(:id => subrating.id) %>", function( data ) {
$('#<%= subrating.name %>').html(data + ' %');
$('#<%= subrating.name %>'upz).html( '<%= image_tag("UpArrowGreen.png" %>');
});
});
</script>
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
$('#'upz).html('');
});
});
事实证明,我可以将图像作为html插入:
<script type="text/javascript">
$("#<%= subrating.name.downcase %>_link").click(function () {
$.get( "<%= upvote_subrating_path(:id => subrating.id) %>", function( data ) {
$('#<%= subrating.name %>').html(data + ' %');
$('#<%= subrating.name %>'upz).html( '<%= image_tag("UpArrowGreen.png" %>');
});
});
</script>
$(“##_链接”)。单击(函数(){
$.get(“subrating.id)%>”,函数(数据){
$('#').html(数据+'%');
$('#'upz).html('');
});
});
在您的视图中,您还有很多逻辑。你的观点不应该对谁可以对什么投票负责。你的意思是阻止一个ip地址投票两次?您还建议我如何调节它?在助手方法或控制器中。你的观点应该有一些条件,比如如果你能投票?如果登录,请执行
或操作。最重要。我当前的模型是否降低了加载时间?不一定-但复杂视图很难测试,调试也很困难,通常被视为MVC实践不佳。在你看来,你也有很多逻辑。你的观点不应该对谁可以对什么投票负责。你的意思是阻止一个ip地址投票两次?您还建议我如何调节它?在助手方法或控制器中。你的观点应该有一些条件,比如如果你能投票?如果登录,请执行
或操作。最重要。我当前的模型是否降低了加载时间?不一定-但复杂视图很难测试,调试也很困难,通常被视为MVC实践不佳。在你看来,你也有很多逻辑。你的观点不应该对谁可以对什么投票负责。你的意思是阻止一个ip地址投票两次?您还建议我如何调节它?在助手方法或控制器中。你的观点应该有一些条件,比如如果你能投票?如果登录,请执行
或操作。最重要。我当前的模型是否降低了加载时间?不一定-但复杂视图很难测试,调试也很困难,通常被视为MVC实践不佳。在你看来,你也有很多逻辑。你的观点不应该对谁可以对什么投票负责。你的意思是阻止一个ip地址投票两次?您还建议我如何调节它?在助手方法或控制器中。你的观点应该有一些条件,比如如果你能投票?如果登录,请执行
或操作。最重要。我当前的模型是否降低了加载时间?不一定-但复杂视图很难测试和更新