Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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
Javascript Rails通过单击按钮对元素进行排序_Javascript_Ruby On Rails_Erb - Fatal编程技术网

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