TojiTech No Programming, No Life.

TurbolinksでjQueryのloadイベントが発火しない罠

背景

navbarが可変の時にmain要素をリサイズしたいと思い実装していたが、画面リロード・リサイズでは発火するが画面遷移では発火しない事象が発生しました。

そのときの解決コードが以下の通り

動かないコード

$(document).on('turbolinks:load', function() {
    $(window).on('load resize', function() {
        // resizeは動くが、loadは画面リロードしないと働かない…
    })
});

動くコード

以下が、動くコード。ポイントは、turbolinks:loadをresizeと一緒に埋め込んでいること!

$(window).on('turbolinks:load resize', function() {
    // resizeでもloadでも働く働き屋さん!
})

Profile

Yuki Tojima

RubyやPhp、JavaScriptまわりのことを徒然と記録に残す技術ブログです。

至らぬところもあると思いますが、見守っていただけると幸いです。

記事のリクエストや、間違いなどありましたら X (旧 Twitter) のDMなどでお気軽にご連絡ください。

ytojima @TojiTech
プロフィール画像