渲染部分js后链接无法正常工作

时间:2014-12-16 12:39:03

标签: javascript ruby-on-rails ruby-on-rails-4

所以我想要的是在更新事件后重新渲染表。

我这样做:

## My Controller:

respond_to do |format|
  if schedule_child.save
     sql = "schedules.doctor_id = ? AND schedules.location_id = ? AND schedule_children.start_time >= ? AND schedule_children.start_time <= ?"
     @schedules = ScheduleChild.joins(:schedule).where(sql, current_doctor.id, session[:location_id], Time.now, Time.now + 7.days).order(start_time: :asc).page(params[:page]).per(7)
     format.js {render :layout => false}
  end
end

我的js.erb:

$('#schedules').html( "<%= escape_javascript( render "schedules" ) %>" );

我的观点:

%a.status_link.btn.btn-success.btn-sm{"data-href" => set_schedule_status_path(location_id: session[:location_id] ,id: schedule.id), :style => "#{schedule.is_away ? 'display: none' : '' }", :id => "#{schedule.id}", :remote => "true"}
          %i.fa.fa-check-square-o 
          %span Available

表已成功呈现,但我无法单击视图中的链接。我做错了什么?谢谢你的帮助:)

1 个答案:

答案 0 :(得分:2)

使用"data-href"作为链接而不是"href"需要额外的javascript才能使链接可用。可能你已经有了javascript,并在document.ready上调用它,并在数据属性“data-href”的每个链接上应用你的javascript逻辑。

如果是这种情况,您有四个选项(只是猜测,因为我不知道您正在使用的数据-href的逻辑):

  • 使用href代替data-href
  • 调用启用js.erb中链接的逻辑(替换表格后)
  • 调用启用document.readyajaxStop
  • 上的链接的逻辑
  • 在父节点上定义逻辑,该节点总是存在$('body').on('click', 'a[data-href]', ...