2013-05-25 4 views

답변

7

turbolinks에서 'page : load'이벤트를 사용하여 초기화 기능을 연결할 수 있습니다. 터보 링크가 새 페이지를 완전히 다시로드 할 때 항상 호출됩니다.

: 당신이 많이 jQuery를 사용하는 경우

function initialize() { 
    //js code what you want run always 
} 

$(document).ready(initialize); 
$(document).on('page:load', initialize); 

, 당신의 Gemfile

gem 'jquery-turbolinks' 

을하고 application.js

//= require jquery 
//= require jquery.turbolinks 

Turbolinks 두 개의 다른 유용한 이벤트가에 설치하는 것이 유용하다

page:fetch //when new page begin to download 
page:change //when the page has changed over 
+1

여기서 염두에 두어야 할 문제 로드 될 때마다 이미로드 된 스크립트 외에도로드됩니다. 예를 들어 스크립트에서 이벤트를 묶는다면 반복해서 반복 할 것입니다. 이 문제를 피하기 위해 최선의 해결책을 찾으십시오. – ifightcrime

+1

나는이 문제가 더 이상 최신 turbolinks 및 jquery-turbolinks와 함께 존재하지 않는다고 생각합니다. 여러 경계를 피하기 위해 semafor로 작동 할 수있는 dom 요소에 항상 여분의 클래스를 추가 할 수 있습니다. '$ (#yourselector : not (.bounded)). addClass ('bounded'). on ('이벤트', do_this); ' – Zoltan

+2

정확하고 사람들에게 알리고 싶습니다. 매우 광범위하게 언급되지 않는 것 같습니다. 나는 다음 페이지가로드되기 전에 추가 된 모든 이벤트를 자동으로 바인딩 해제하는 빠른 스크립트를 작성했습니다. – ifightcrime