Javascript Rails通过单击按钮对元素进行排序
场景:有一个排序按钮,当用户单击它时,列表将按Javascript Rails通过单击按钮对元素进行排序,javascript,ruby-on-rails,erb,Javascript,Ruby On Rails,Erb,场景:有一个排序按钮,当用户单击它时,列表将按名称排序(它按之前创建的排序) 我遇到的一个问题是,我用ruby对代码进行了排序,但我如何知道用户何时单击按钮 例如: <button id = "sort_btn">Sort by name!</button> ... <%# before_sort is origin array %> <% sort_arr = Array.new(before_sort) %> <%# x[1] is
名称
排序(它按之前创建的排序)
我遇到的一个问题是,我用ruby对代码进行了排序,但我如何知道用户何时单击按钮
例如:
<button id = "sort_btn">Sort by name!</button>
...
<%# before_sort is origin array %>
<% sort_arr = Array.new(before_sort) %>
<%# x[1] is the name attribute %>
<% sort_arr.sort_by!{|x| x[1]} %>
<%# if click sort button %>
<% sort_arr.each do |section_layer1| %>
<%# if did't click sort button or click twice sort button %>
<% before_sort.each do |section_layer1|>
<%= render :partial => 'list', :locals => {:section => section_layer1 }%>
<% end %>
按名称排序!
...
Javascript!单击可手动添加get参数:
$(".sort_btn").on('click',function(){
if (url.indexOf('?') > -1){
url += "&sort=sort";
}else{
url += "?sort=sort";
}
}
window.location.href = url;
});
然后,如果参数存在,则打印已排序的表:
<%- if params[:sort].present? %>
-- print sorted table --
<%- else %>
-- not sorted --
<% end %>
--打印排序表--
--未分类--
最后,我选择使用链接到+remote true
,然后渲染响应到js.erb
。