2009-11-29 6 views
0

Ruby on Rails 및 javascript에 대한 지식이 매우 부족하므로이 질문에 간단한 답이 있으면 저를 용서해주십시오. 다중 레벨 드롭 다운 메뉴가 필요한 웹 사이트가 있습니다. 필자는 mongrel을 사용하여 내 웹 사이트의 테스트 복사본을 작성하는 scriptalculous 드롭 다운 메뉴를 채택했습니다. 자체 레이아웃이있는 여러 페이지가 있습니다. 페이지에서 페이지로 건너 뛰면 드롭 다운 메뉴가 정상적으로 작동하지만 "보기/표시"페이지로 이동하면 첫 번째 레벨 메뉴 만 작동합니다. 내가보기 엔 점프가 어떻게 든 자바 스크립트를 잃어 버리는 것 같아. 누구나이 문제를 해결하는 방법을 알고 있습니다. 모든 레이아웃 헤드에는 다음과 같은 문자가 있습니다. -Scriptaculous 드롭 다운 메뉴가보기 /보기에서 작동하지 않습니다.

<%= stylesheet_link_tag 'style' %> 
<%= javascript_include_tag :defaults %> 
<script src="javascripts/prototype.js" type="text/javascript"></script> 
<script src="javascripts/scriptaculous.js" type="text/javascript"></script> 
<script type='text/javascript' src='javascripts/menu.js'></script> 

Scriptaculous 다운로드와 함께 제공되는 prototype, controls 등을 사용하고 있습니다.

답변

0

은 문제가 귀하의 질문에 포함 된 짧은 코드 스 니펫 외부에있을 가능성이 높습니다.

Firebug으로 확인하여 메뉴가 제대로 만들어지고 전송되는지, 필요한 모든 파일이 포함되는지 등을 확인 했습니까? (심지어 자바 스크립트 문제가되지 않을 수도 있습니다)

다른 가능성은 많이 있지만 제공되는 코드로 판단하기가 어렵습니다.

사이트의 다른 페이지에 작동 메뉴가 있고 페이지가 서로 같을 경우 (탐색 메뉴, 예상 한 바와 같음) 마크 업 또는 자바 스크립트 파일이 다른 경우 (닫히지 않은 경우) 태그가 누락 된 태그, 표시가있는 인라인 CSS : 없음 등)

+0

감사합니다. Jonathan 루트 템플릿 (색인)에서 페이지로 이동할 때 javascript_include_tag가 "src = ..."가 아닌 javascript_include_tag를 URL로 잘못 사용해야합니다. 상대 링크 (보여줄 색인). Rails는 URL을 "src = ...."에서 확인할 수 없습니다. javascript_include_tag 사용하기 Rails는 모든 템플릿 (index, show 등)에 링크를 넣습니다. "src = ...."에 전체 경로를 입력하면 모든 템플릿이 레일스에서 ​​올바른 URL을 얻으므로 작동해야합니다. 아직도 이것을 시도 할 필요가있다. 레일스가 "... tag"스크립트 ","proto .. ","menu ";" ".de_tag : default"를 사용하지 않아 모든 .js가 필요하지 않은 페이지를로드합니다. 느린 페이지 로딩입니다. 파일이 캐시되는 한 – Don

+0

은로드 속도를 현저히 늦추지 않아야합니다. 스크립트 실행 시간이 특히 느리지 않으면. –

관련 문제