在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 ...这会给您带来一些麻烦。祝好运!