我有一个link_to:
<%= link_to "Load More", comments_feed_path(@post.id), :id => 'my-link', :remote => true %>
,这在application.js文件中:
$( document ).ready(function() {
$('#my-link').bind('click', function() {
alert('Hooray!');
//event.preventDefault(); // Prevent link from following its href
});
});
但没有任何反应。如果我这样做,它会按预期工作,但我宁愿使用不引人注目的js ......
<%= link_to "Load More", comments_feed_path(@story.id), :id => 'my-link', :onclick => "test()", :remote => true%>
的application.js:
function test(){
alert('test');
}
关于我缺少的任何想法?
答案 0 :(得分:1)
似乎是一个常见的turbolinks问题。 Turbolinks是gem,默认情况下包含在rails中,可以防止在每个请求中加载页面的公共部分。它阻止重新加载的最常见部分是标题,包括所有javascript定义。这意味着,您的$(document).ready
回调仅针对您应用的初始页面执行。
要解决此问题,您需要将$(document).ready
更改为:
$(document).on('turbolinks:load', function() {