在Rails 4.2.5中工作,我的代码如下
application.js文件:

$(document).ready(function() {
$("#property_selection #properties").click(function() {
    var url = window.location.href
            .replace(/\/?$|(\?|&)current_prop_id=[^?&]+/g, "")
        + "?current_prop_id="
            + $("#properties option:selected").val();
    window.location.href = url;
    })
});


即,当我选择一个property_id时,我想转到相同的URL,再加上
"?current\_prop\_id=",加上ID。

这是我第一次登录时起作用的。当我走一条路
http://localhost:3000/foo,但是不是。击中刷新
该页面使其再次工作。

然后我将$(document).ready行更改为
$(document).on('page:load', ...,(根据我的读物
here),
但这只会扭转问题。现在它第一次起作用了,但是
不是第二个。

将此代码放入静态文件即可。

我现在都在application.js中定义了,在
许多级别,但我不知道该怎么做才能使该功能正常工作
两种情况都相反。有人有什么建议吗?谢谢。

最佳答案

我通常会做类似(咖啡脚本语法)的操作:

$ ->
    do_on_load()
    $(window).bind('page:change', do_on_load)


或javascript:

$(document).ready(function() {
  do_on_load();
  $(window).bind('page:change', do_on_load);
}


其中do_on_load()是具有应执行指令的函数。无论如何,这是由turbolinks + jquery引起的,这确实很烦人。更改它们在应用程序中的加载顺序。js也会影响该行为。我建议重新考虑使用Turbolinks ...这会给您带来一些麻烦。祝好运!

10-05 20:33
查看更多