2017-09-11 10 views
0

我使用jQuery 1.12.4到目前爲止,一切都OK阻塞turbolinks,我有這樣的事情:jQuery的3號文件準備從執行

$(document).ready -> 

    console.log "document is ready yaay!" 

    start = -> 

     alert "Hello world!!!" 

    document.addEventListener('turbolinks:load', start) 

我升級到Rails 5.1昨天決定增加和升級我的jQuery(是的,我仍然需要它),所以我使用yarn安裝了jQuery 3,但是上面的代碼沒有執行,至少turbolinks部分(console.log在每次文檔加載時執行,但是「開始」法不)​​

我刪除了$(document).ready ->和代碼開始工作正常!

爲了確保我也刪除jQuery的3和安裝jQuery的1.12背部和它的工作!即使$(document).ready ->

爲什麼發生這種情況?

回答

0

請確保您添加//= require jqueryapplication.js文件。

在命令行中運行yarn install jquery全部小寫

這是我從通過紗線的使用jQuery我的項目之一application.js文件。

//= require rails-ujs 
//= require turbolinks 
//= require jquery 
//= require_tree . 

編輯: 如果你想要的console.log和警覺開火的每一頁變化。你可以這樣寫你的JavaScript。

$(document).on('turbolinks:load', function() { 
    console.log('Test'); 
    alert("Hello world!!!"); 
}); 
+0

我不知道加入jQuery的問題,我已經在我的application.js,這個問題是jQuery的版本,如果你使用jquery 3和我的代碼運行它只會調用turbolinks方法一次,之後,如果你多次刷新turbolinks方法停止工作 – medBo

+0

jQuery就緒事件或$'(document).ready - >'與turbolink衝突。我認爲可能會有一些命名空間問題,其中turbolink被jquery覆蓋,反之亦然。也許v1.12.4是可行的,因爲與turbolink的重疊不會那麼糟糕。你可以閱讀更多關於它在這裏https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads這裏https://thoughtbot.com/upcase/videos/turbolinks –

+0

我是這麼認爲的,這很奇怪,實際上並沒有使用$(document).ready是jQuery 3的解決方案 – medBo