4

document.ready이 자바 스크립트를 통해 실행되도록 할 수 있습니까? 디폴트로 turbo links을 사용하는 새로운 Rails 4 기본값은 페이지를 전환 할 때이 이벤트가 실행되지 않도록합니다. 이로 인해 $(function(){});에 래핑 된 '전통적인'jQuery 코드에 문제가 발생합니다.수동으로 document.ready를 호출하십시오.

나는 코드를 통해이 이벤트를 발생시키는 방법을 보지 않았으며 대부분의 대답은 다른 해결 방법을 제공합니다.

그렇다면 정규 자바 스크립트 코드를 통해 document.ready가 실행되도록 할 수 있습니까?

답변

3

jQuery를 사용하고 있습니까? 그렇다면 코드 끝 부분에서 Jquery의 $.ready(); 함수에 대한 명시 적 호출을 시도하십시오. 이렇게하면 모두 jQuery "ready"함수가 사용자 자신과 사용중인 모든 플러그인에서 호출 될 수 있습니다.

그래도 작동하지 않으면 $(window).load();을 시도해보십시오.

비동기 호출 중 일부 유형과 비동기 호출 중 어느 것도 사용하지 않는 경우 먼저 다른 문제를 제거해야합니다. 행운을 빕니다!

1

코드를 크게 변경하지 않고 이렇게하는 가장 간단한 방법은 준비된 이벤트 대신 준비된 이벤트를 듣고 준비된 이벤트를 사용자 지정 이벤트로 시작하는 것입니다. turbolinks documentation에서

1

: 당신은 예를 들어, 문서가 turbolinks 사용자 정의 페이지 이벤트 중 하나를들을 확인해야합니다 :

$(document).on('page:change', function() { 
    // Your code 
}); 
1

가장 쉬운 솔루션 :

삽입하여 Gemfile이 :

gem 'jquery-turbolinks', '~> 1.0.0' 

application.js를 다음과 같이 삽입하십시오.

당신이 당신의 커피 스크립트 코드에서이 turbolinks가 활성화되면 전체 페이지를 다시로드하거나 링크를 통해 페이지를 열기위한 트리거됩니다 다음이있는 경우
//= require jquery.turbolinks 

(A bundle update을 잊지 마세요) :

$ -> 
    alert 'Hello World' 

($ ->document.ready을 의미)

관련 문제