【问题标题】:Rails turbolinks:load event fires but corresponding function does notRails turbolinks:加载事件触发但相应的功能没有
【发布时间】:2016-09-05 17:43:04
【问题描述】:

我正在开发 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?'))

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

谢谢

【问题讨论】:

  • 为什么不把函数作为调用的一部分,而不是自己关闭呢? $(document).on('ready turbolinks:load', function() { ... });
  • 谢谢,我试过了,但效果不大。

标签: javascript ruby-on-rails ruby turbolinks


【解决方案1】:

删除“就绪”。

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

或者对于 turbolinks-classic

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

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    相关资源
    最近更新 更多