所以我想要的是在更新一个事件后重新渲染一个表格。
我是这样做的:
## 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
表格已成功呈现,但我无法单击 View 中的链接。我做错了什么?感谢您的帮助:)
最佳答案
使用 "data-href"
作为链接而不是 "href"
需要额外的 javascript 才能使链接可用。可能您已准备好该 javascript 并在 document.ready
上调用它,并将您的 javascript 逻辑应用于具有数据属性“data-href”的每个链接。
如果是这种情况,您有四种选择(只是猜测,因为我不知道您使用的 data-href 的逻辑是什么):
- 使用
href
代替data-href
- 在您的 js.erb 中调用启用链接的逻辑(在您替换表格之后)
- 在
document.ready
和ajaxStop
上调用启用链接的逻辑> - 在始终存在的父节点上定义逻辑,如
$('body').on('click', 'a[data-href]', ...
关于javascript - 渲染部分 js 后链接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504878/