Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 原型仅在数组中切换最后一项_Javascript_Ruby On Rails_Ruby_Prototype - Fatal编程技术网

Javascript 原型仅在数组中切换最后一项

Javascript 原型仅在数组中切换最后一项,javascript,ruby-on-rails,ruby,prototype,Javascript,Ruby On Rails,Ruby,Prototype,我是个初学者,我哥哥给我看了一些原型。“所有周”成功切换阵列中的最后一周,但没有其他周。请让我知道,如果我需要更具体!谢谢 <%= @athletic_program.program_name %> <br> <br> <% array of_ids = Array.new %> <% @program_weeks.each do |program_week| %> <% array_of_ids.push(program

我是个初学者,我哥哥给我看了一些原型。“所有周”成功切换阵列中的最后一周,但没有其他周。请让我知道,如果我需要更具体!谢谢

<%= @athletic_program.program_name %>
<br>
<br>

<% array of_ids = Array.new %>

<% @program_weeks.each do |program_week| %>
  <% array_of_ids.push(program_week.id) %>
  <div id="week_number_<%= program_week.id %>" class="week_number">Week <%=program_week.week_number %></div>
<div id="program_week_form_<%= program_week.id %>" class="program_week_form">
    <% form_for(program_week) do |f| %>
      <%= f.error_messages %>
      Number of Workouts <%= f.select :number_of_workouts, (1..7), {} %>
      <%= f.submit 'Next' %>
    <% end %>
  </div>
<% end %>

<% content_for :javascript do %>
<script type="text/javascript">
function showForms(array_of_ids){
  for(var i=0;i<array_of_ids.length;i++){
    id = array_of_ids[i];
    week_id = "week_number_" + array_of_ids[i];
    $(week_id).onclick = function(event){
      program_form = "program_week_form_" + id;
      form_div = $(program_form);
      if (form_div.style.display == 'none'){
        form_div.style.display = 'block';
      } else {
        form_div.style.display = 'none';
      }
    }
  }
}

showForms(<%= array_of_ids.to_json %>);
</script>
<% end %>



周 训练次数 函数showForms(数组\个ID){ 对于(var i=0;iWeek 训练次数

我将style=“display:none;”添加到程序“week\u form”中,默认情况下将其隐藏。

单击week div时,您是否只是尝试切换表单?如果是这样,您的操作方式确实是错误的

我认为如果您使用Prototype,您可以删除所有javascript和数组ID,只需将week div更改为:

<div id="week_number_<%= program_week.id %>" class="week_number" onclick="$('program_week_form_<%= program_week.id %>').toggle()">Week <%=program_week.week_number %></div>
一周

谢谢!我在onclick方法中添加了一个额外的单引号,效果很好!再次感谢!我的印象是,最好不要将javascript内联,但这主要是由于IRC聊天中的建议,我一直不明白为什么。你的想法是什么?@todd,很好。很抱歉:)@tenjack,你说得对。最佳做法是编写不引人注目的JS,但考虑到原始代码和OP只是从Prototype/JS开始的事实,我认为这是一个简单的进步。
<div id="week_number_<%= program_week.id %>" class="week_number" onclick="$('program_week_form_<%= program_week.id %>').toggle()">Week <%=program_week.week_number %></div>