문제

I have a custom js file in app/assets/javascripts. This is the js file:

//app/assets/javascripts/contacts.js
//$(document).ready(function() { //I've already tried with this method

$(window).load(function() {
    alert("foo bar")
});

I require the file contacts.js file in the application.js file.

If I inspect the html page I see the js file loaded correctly, but the message is not shown. If I reload the page (by pressing f5), the message is correctly show.

When the page is loaded the javascript is loaded (I can see it in source html code in the browser) but not executed.

Can you help me?

SOLUTION: Rails 4: how to use $(document).ready() with turbo-links

도움이 되었습니까?

해결책

$(document).ready(function() { } # Not working with turbo-links

From

Turbolinks overrides the normal page loading process, the event that this relies on will not be fired. If you have code that looks like this, you must change your code to do this instead:

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

Another question

다른 팁

With Turbolinks version 5 (starting from Rails 5) you need to use:

$(document).on("turbolinks:load", function () {
  // YOUR CODE
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top