Rails turbolinks:加载事件触发但相应的功能没有

时间:2016-09-05 17:43:05

标签: javascript ruby-on-rails ruby turbolinks

我正在开发一个Rails Gem,它的一部分功能会将一个javascript跟踪代码注入到rails视图/页面的HTML主体中。

然而,Turbolinks给了我一个问题。我的跟踪代码脚本在具有完整页面刷新的页面上运行良好,但对于没有完整页面的页面,脚本不会运行(尽管我可以看到它存在于HTML正文中)

没有Turbolinks,一切正常但我知道很多人都使用它,所以想找到一个解决方案来使用它(所以Jquery.turbolinks gem并不是真正的解决方案)

这是我到目前为止所尝试的内容。 (我已经安慰记录了'工作?'以查看turbolinks:load事件是否实际上是在我期望它的页面上触发,它是。所以现在只是不确定为什么脚本'trackingCode'函数不会触发无论是。)

var trackingCode;

trackingCode = function() {

  // my javascript code

};

$(document).ready(trackingCode)
$(document).on('page:load', trackingCode)
$(document).on('ready turbolinks:load', trackingCode);
$(document).on('ready turbolinks:load', console.log('working?'))

希望这很清楚,但如果需要更多信息,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

删除'ready'。

$(document).on('turbolinks:load', function() {
    console.log('it works');
});

或者对于turbolinks-classic

$(document).on('page:change', function() {
    console.log('it works');
});