Javascript TurboLink导致滚动事件未触发

Javascript TurboLink导致滚动事件未触发,javascript,jquery,ruby-on-rails,ruby-on-rails-5,turbolinks,Javascript,Jquery,Ruby On Rails,Ruby On Rails 5,Turbolinks,在我的Rails 5应用程序中,我有一个应该在scroll事件中启动的脚本,但由于某些原因,我无法使它与turbolinks gem一起工作 我的代码: 第一次尝试: $("#side-block").on("scroll page:load", function(e) { console.log("scroll"); } 第二次尝试: $(document).on('turbolinks:load', function() { $("#side-block").on("scrol

在我的Rails 5应用程序中,我有一个应该在scroll事件中启动的脚本,但由于某些原因,我无法使它与turbolinks gem一起工作

我的代码:

第一次尝试:

$("#side-block").on("scroll page:load", function(e) {
    console.log("scroll");
}
第二次尝试:

$(document).on('turbolinks:load', function() {
  $("#side-block").on("scroll page:load", function(e) {
    console.log("scroll");
  });
});

两个人都不走运。脚本已正确加载,但未触发滚动。我缺少什么?

尝试使用事件委派:

$(document).on("scroll", "#side-block", function(e) {
    console.log("scroll");
}

问题与元素上的错误溢出属性有关。根据jQuery文档:

当用户滚动到元素中的其他位置时,将向元素发送滚动事件。它适用于窗口对象,但也适用于可滚动的框架和元素,当元素的显式高度或宽度小于其内容的高度或宽度时,溢出CSS属性设置为滚动或自动

这就是为什么滚动事件从未被触发

此外,我发现在使用turbolinks gem时包装JS非常有用,代码如下:

$(document).on('ready page:load', function() {
   ...
 });

它允许我在页面呈现后操作页面元素

这并没有解决我的问题,但即使是有帮助的。给我指出了正确的方向。谢谢