0

1つずつ表示されるクイズと質問を作成し、クリックするとリスト内の質問のIDに移動するリスト内の質問を表示する必要があります。しかし、ローダーが停止しないと機能しません

ここに私のスクリプトがあります

<script type="text/javascript">
  function set_active(){
  $$('.active-link').each(function(e){
    e.removeClassName('active-link');
  });
    this.addClassName('active-link')
  }

  function draw_report(){
  Element.show('loader')
  new Ajax.Request('answers/ans',
  {asynchronous:true, evalScripts:true,
  parameters:'passed_question='+this.id+'&exam_group_id=<%= @exam_group.id %>',onSuccess:function(request){Element.hide('loader')}
  })
}

  document.observe("dom:loaded", function() {
    $$('.student-link').invoke('observe','click',draw_report);
    $$('.student-link').invoke('observe','click',set_active); 
  });
</script>

ビューページで

<div class="list_id">
  <%= "Questions" %>
</div>
  <% @slno = 0 %>
  <ul class="student_list">
    <% @questions.each do |s| %>
    <% @slno = @slno+1  %>
      <li class="student_names">
        <a href="#" id="<%=s.id%>"  class="student-link" > <%= @slno %></a>
      </li>
    <% end %>
  </ul>

しかし、質問IDをクリックしても何も応答しません

4

1 に答える 1

0

使用している Javascript コンソールからまったくエラーが発生していませんか? 括弧を追加するとうまくいくはずです:

$$('.student-link').invoke('observe','click',draw_report());
$$('.student-link').invoke('observe','click',set_active());

編集:元の質問でjQueryタグを使用しているようです。本当にjQueryを使用していますか? 上記の JavaScript コードは Prototype に疑わしいほど似ているためです。

于 2013-11-06T09:10:34.427 に答える