我有一个从Amazon-ecs API (搜索图书)返回结果的partial。返回值大约需要2.5秒,所以我想添加一个微调按钮(理想情况下隐藏搜索按钮),但我很难让它工作。
我已经让javascript用结果刷新了部分。我只是想让按钮给我一个微调(并隐藏搜索按钮),直到部分完成重新加载。
下面是我的主视图(index.html.erb),它呈现了部分搜索结果,每个结果都临时添加为AmazonItems中的一个对象:
<%= form_tag amazon_items_path, :method => :get, :remote => true do %>
<p>
<%= text_field_tag :query, params[:query] %>
<span id="spinner" style="display:none">
<%= image_tag 'ajax-loader.gif' %>
</span>
<span id="search_button">
<%= submit_tag "Search" %>
</span>
</p>
<% end %>
<h1>Searching Amazon</h1>
<div id="amazon_returned">
<%= render 'amazon_returned' %>
</div>我唯一的JS代码在update.js.erb文件中,它看起来像这样:
$("#amazon_returned").html("<%=j render 'amazon_returned' %>");我相信这很容易,但我不能让它工作。谢谢!
编辑:我的部分"_amazon_returned.html.erb“看起来像
<table>
<% for amazon_item in @amazon_items %>
<td> amazon_item.title </td>
...ETC...
<% end %>
</table>发布于 2011-11-28 09:57:51
您可以挂钩到before事件来执行此操作:
$(function() {
$("form").on("ajax:before", function() {
$("#spinner, #search_button").toggle();
});
});然后,在您的update.js.erb中,再次添加以下内容以将它们切换回来:
$("#spinner, #search_button").toggle();发布于 2011-11-28 23:55:46
按照迪伦的回答,在update.js.erb中添加了切换,并在视图中插入了以下内容:
<script>
$(function() {
$("#search_button").click(function() {
$("#spinner, #search_button").toggle();
});
});
</script>非常酷!再次感谢你的帮助。
https://stackoverflow.com/questions/8290014
复制相似问题