2017-03-09 63 views
0

在我的Rails 5應用程序中,我有一個應該在scroll事件中被觸發的腳本,但由於某種原因,我無法使其與turbolinks gem配合使用。Turbolinks導致滾動事件不會觸發

我的代碼:

第一次嘗試:

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

第2次嘗試:

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

兩個沒有運氣。腳本正確加載,但on scroll未被觸發。我錯過了什麼?使用事件代表團

回答

0

問題涉及元素的錯誤overflow財產。根據jQuery文檔:

當用戶滾動到元素中的不同位置時,將滾動事件發送到元素。它適用於窗口對象,但也適用於可滾動的框架和溢出CSS屬性設置爲滾動的元素(或當元素的顯式高度或寬度小於其內容的高度或寬度時爲自動)。

這就是爲什麼scroll事件從未被觸發。

而且我發現包裹JS(使用turbolinks寶石時),此代碼有用:

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

它讓我操縱頁面元素頁面被渲染後。