2013-05-12 3 views
0

내 프로젝트에서 일부 인스턴스 변수를 사용하는 부분적인 인라인 자바 스크립트가 있습니다. 성공적인 Ajax 호출 후에 해당 부분을 다시 렌더링하면 스크립트가 실행되고 있지 않습니다.인라인 Javascript가 제대로 작동하지 않습니다. 루비에서 부분을 다시 렌더링하는 중입니다. 3.1

문제 해결 방법을 알려주세요.

예 :

_partial.html.erb

<div class="someclass"></div> 
<script> 
    $(document).ready(function(){ 
     $(".someclass").hide(); 
    }); 
</script> 

스크립 태그 js.erb 파일이 부분적으로 대체 실행되지 않는다.

답변

4

페이지가 이미로드되었습니다. ready 이벤트는 오래 전에 전달되었으며 아무도 지금 듣고 있지 않습니다.

따라서 Ajax로드 스크립트에 $(document).ready이 있으면 코드가 실행되지 않습니다.

해결책 :

제거 "준비"이벤트 직접 코드 화재 : 마지막으로

<div class="someclass"></div> 
<script> 
    $(".someclass").hide(); 
</script> 
+0

응답에 대해서는 thanx이지만 여전히 작동하지 않습니다. 스크립트에서 사용하고있는 또 다른 플러그인은 드래그 가능하며 $ ('. someclass'). draggable();입니다. 처음 실행되지만 부분을 다시 렌더링 한 후에는 실행되지 않습니다. 이 코드를 일반적인 js 파일로 옮길 수 없도록 instance 변수를 사용하고 있습니다. – abhas

+0

@abhas, 레일스를 사용하여 코드를 생성하면 html이 올바르게 전달되었는지 (html과 js가 escape되지 않았는지) 확인하십시오. –

2

아약스 성공 이벤트에서 DOM을 수동으로 업데이트 한 후 준비된 이벤트가 트리거되지 않아 콜백 함수가 실행되지 않은 것으로 보입니다.

1

을, 나는 내 요구 사항은로 자바 스크립트를 넣어하는 것입니다 적합라고 생각 답을 발견 js.erb 부분적으로 html.erb 및 기타 js.erb files에 렌더링하십시오.