所以我在Rails 4應用程序中使用CoffeeScript的,打一個奇怪的問題,由此產生的JS並不總是運行的CoffeeScript並不總是運行
我寫的唯一的CoffeeScript是一個簡單的剛剛開始日誌聲明:
$ ->
console.log "show this"
這似乎會偶爾彈出第一頁加載。如果它沒有加載,我刷新頁面,然後加載下面的時間。
我在這裏錯過了什麼嗎?
所以我在Rails 4應用程序中使用CoffeeScript的,打一個奇怪的問題,由此產生的JS並不總是運行的CoffeeScript並不總是運行
我寫的唯一的CoffeeScript是一個簡單的剛剛開始日誌聲明:
$ ->
console.log "show this"
這似乎會偶爾彈出第一頁加載。如果它沒有加載,我刷新頁面,然後加載下面的時間。
我在這裏錯過了什麼嗎?
是的,這是由Turbolinks造成的。
$ ->
console.log "show this"
裝置
$(function(){
console.log("show this")
})
這意味着
$(document).ready(function(){
console.log("show this")
})
Turbolinks截取,使得未被觸發的事件ready
的請求。
爲了解決這個問題,您可以disable Turbolinks或use jquery-turbolinks。
看看這個問題:Rails 4 turbo-link prevents jQuery scripts from working
您想添加一個page:change
事件偵聽器,因爲Turbolinks抑制$(document).ready
因此,像這樣應該可以解決這個問題:
$(document).on('page:change', function() { ... })