2011-08-14 5 views
1

다음과 같이 두 개의 탭이 있습니다.jquery 탭 및 레일 : 이벤트가 겹치기 전환?

<div id="tabs"> 
    <ul> 
     <li ><%= link_to 'A', a_path %></li> 
     <li ><%= link_to 'B', b_path %></li>  
    </ul> 
</div> 

'A'는 다음과 같은 링크로 렌더링합니다. < % = link_to new_foo_path (: format => : js), : remote => true %>

그 링크를 클릭하면 서버 로그에서 두 번, 때로는 세 번 호출되는 것을 볼 수 있습니다.

어디서나 특별한 클릭 핸들러가 없습니다. 내 탭은 다음과 같이 초기화됩니다 :

$(function() { 
     $("#tabs").tabs(); 
}); 

더 심하게는, 탭간에 앞뒤로 전환하면 링크를 클릭 할 때마다 원격 호출 수가 증가합니다.

그림에서 탭을 제거하면 링크가 예상대로 작동합니다.

레일 3을 jquery-1.4.4.min과 jquery-ui-1.8.14.custom.min으로 실행하고 있습니다. 행운을 빌어 jquery의 다른 조합/버전을 시도했습니다. 누구 아이디어?

감사합니다!

+0

스택 오버플로에 오신 것을 환영합니다! Rails 문제는 아니지만 전환 할 때 클릭 이벤트를 트리거하는 탭 플러그인과 관련이있는 것으로 보입니다. 문제의 원인을 밝히기가 정말 어렵습니다. 1) 탭 플러그인 소스 코드에 링크하고 2) 문제의 원인이되는 코드의 html 데모를 올릴 수 있습니까? (레일즈 링크를 제거하고 대신 클릭하면'alert()'메시지가 나타난다.) –

+0

jQuery 탭은 이미 페이지에있는 콘텐트와 작동한다고 나는 믿는다. jQuery UI 웹 사이트의 예제와 비슷한 클래스 등으로 html을 설정했다. 그런 다음 필요에 따라 jQuery 함수를 요소에 적용하십시오. 나는 이것을 UI 탭으로했던 3 부분 형식으로 설정했다. 아약스를 사용하여 동적 HTML을 요청할 수 없다는 것은 아닙니다. 별도 HTML을로드하는 작업이 조금 더 필요합니다. – agmcleod

답변

0

문제점을 발견했습니다. 나는이 부분을 가지고 있었다 :

$(function() { 
     $("#tabs").tabs(); 
}); 

내 주요 응용 프로그램 레이아웃 템플릿. 따라서 각 탭의 콘텐츠에 대한 호출이 이루어지면서 위의 함수가 여러 번 호출되었습니다. 일단 내가 올바른 장소로 옮기면, 예상대로 일이 진행되었습니다.

yuval 및 agmcleod를 입력 해 주셔서 감사합니다.