模拟远程=>;使用Javascript实现真正的链接点击

模拟远程=>;使用Javascript实现真正的链接点击,javascript,jquery,ruby-on-rails,ajax,ujs,Javascript,Jquery,Ruby On Rails,Ajax,Ujs,我试图模拟使用javascript单击Rails3Ajax链接(remote=>true)得到的响应。但我想知道我是否对这整件事的想法是错误的 我有一些AJAX链接,可以在仪表板中交换页面内容。像这样: <%= tabs_tag(:builder => RemoteTabsBuilder) do |tab| %> <%= tab.preview 'Preview', unit_surveys_preview_path(@unit), :class =&

我试图模拟使用javascript单击Rails3Ajax链接(remote=>true)得到的响应。但我想知道我是否对这整件事的想法是错误的

我有一些AJAX链接,可以在仪表板中交换页面内容。像这样:

<%= tabs_tag(:builder => RemoteTabsBuilder) do |tab| %>
          <%= tab.preview 'Preview', unit_surveys_preview_path(@unit), :class => "mylink", :remote => true %>
          <%= tab.sendpage 'Send', unit_surveys_send_path(@unit), :class => "mylink", :remote => true %>
          <%= tab.home 'Results', unit_responses_results_path(@unit), :class => "mylink", :remote => true %>
<% end %>
在控制器中,但我不想重新加载整个仪表板,我只想重新加载“结果”页面内容。所以我想我想模拟点击我现有的链接:

<%= tab.home 'Results', unit_responses_results_path(@unit), :class => "mylink", :remote => true %>
“mylink”,:remote=>true%>
但是

1) 如何使用javascript(或jQuery)实现这一点?(基于此线程:我相信我可以使用$.get来模拟单击,但不会触发Rails UJS响应)

2) 我觉得这件事太复杂了。有更好的方法吗?

1)我不认为重新加载整个页面是个好主意,但你可以通过

window.location=http://stackoverflow.com/questions/tagged/ruby-on-rails“

作为回应,但我认为这不是,你在寻找什么

2) 我认为最好的解决方案是呈现单元响应结果。您可以这样做:

format.js do
  #set variables(Ex.: @unit)
  render 'unit_responses_results/index'
end
3) 或者,您可以添加一些脚本来删除响应中的覆盖


4) 您还可以使用$.get模拟并评估来自服务器的js。

感谢您的回复。。。。回复:1)重新加载页面并不理想。2) 我不想渲染,而是重定向,因为我不想重复响应#结果控制器中已经存在的所有内容。但是,如果我重定向,那么我就无法访问重定向的输出,因为它没有绑定到rails UJS Ajax事件(?!)。3) 我可以删除覆盖,但我想重新运行responses#results controller(因为它做了很多复杂的事情)。4) 这可能是我需要做的,但似乎是对其他地方(即数据远程链接中)存在的功能的一点修改,再次感谢。我选择了选项4),使用$。链接到unit_responses_results_path(@unit),然后重新运行UJS成功事件中的其他javascript。我可能会将它们包装到一个函数中,使其更干爽一些,但重新创建已经存在的功能仍有很长的路要走。
format.js do
  #set variables(Ex.: @unit)
  render 'unit_responses_results/index'
end