2

我疯狂地用谷歌搜索,在 SO 上搜索并尝试了很多东西,但似乎没有任何效果。

问题:

我的 Rals4 应用程序中有自动完成功能,问题是当我通过链接进入表单页面时它不起作用,但是当我刷新该页面时它起作用。

js.coffescript 代码是:

$(document).ready( ->
  $('#exercise_element_name').autocomplete
    source: $('#exercise_element_name').data('autocomplete-source')
    messages: {
      noResults: '',
      results: ->
    }
)

我也试过

jQuery ->
  $('#exercise_element_name').autocomplete
    source: $('#exercise_element_name').data('autocomplete-source')

和很多类似的东西,我不知道这里出了什么问题,我非常感谢帮助。

也许我需要提到我不使用ajax来获取自动完成列表,我在html中生成列表,并且当页面第一次打开时(当自动完成不起作用时)列表在那里,但自动完成不起作用,只有在刷新页面或写入直接链接后。

因此,当通过页面上的链接转到带有自动完成 text_field 的页面时,它不起作用

4

1 回答 1

5

好的,所以到目前为止没有人回答,但我找到了答案,所以这里是为我有这个问题的其他人准备的。

问题在于默认启用的 Rails 4 turbolinks。当您使用它们时,您不能再依赖 js 中的 jquery.ready() 函数来触发页面加载,因此您需要使用 page:load 代替,或者您可以安装jquery.turbolinks gem,它将 page:load 绑定到查询。准备好()。

有关此turbolinks的更多信息。

于 2013-07-20T05:37:23.207 回答