js模板渲染工作...但页面重新加载并删除其效果

时间:2014-07-06 10:46:24

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

(运行Rails 4.1.1。)我尝试构建的功能通过让每个用户从下拉列表中选择向页面添加另一个下拉控件来逐渐优化搜索,这有更多选项来缩小搜索范围更深入。它的工作原理是,除了在添加控件之后(使用js事件和渲染js模板),整个页面重新加载,然后我们回到原点。我不明白重新加载的触发器。

所以,我有一个带有Bootstrap(3.2.0)按钮下拉菜单的视图。当用户从该下拉列表中选择某些内容时,js'点击'事件火灾。该事件运行JQuery' get()'它请求下一个控件(在这种情况下称为' wedge')。事件处理程序的CoffeeScript如下所示:

$("li.wedge_#{wedge.id}_link").click ->
  output_wedge = $(this).data("outputwedge")
  $.get( "/wedges/" + output_wedge + '.js' )    

控制台显示如下内容:

Started GET "/wedges/2.js" for 127.0.0.1

wedge的show.js模板运行并呈现包含新楔形控件的部分并将其添加到页面中。 wedge.js模板如下所示:

$('#after_wedges').before("<%= escape_javascript( render partial: 'wedge', locals: {wedge: @wedge}) %>")

所有这一切都很好,除了新控件出现后的那一刻,整个页面重新加载,但我不明白该过程的哪个部分会触发重新加载。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为您需要在e.preventDefault()处理程序的顶部添加clicke来自.click(e)

此外,wedges.js应为wedges.js.erb,如果尚未{。}}