2012-04-26 4 views
1

힘든 시간을 보냈습니다. 페이지 상단에 3 개의 탭이 있습니다. 페이지로드시 숨겨집니다. 각 탭에는 콘텐츠가 들어 있습니다. 탭 1을 클릭하고 탭 1의 내용을 표시하려면 탭 2를 클릭하고 탭 2의 내용 등을 표시하고 싶습니다. 그러나 각 탭을 두 번 클릭하여 연관된 내용을 숨길 수 있기를 원합니다.인접한 탭을 닫지 않고 jQuery로 탭을 전환하는 방법.

원하는 효과는 탭 1 클릭, 탭 1 내용보기, 탭 2 클릭, 탭 2 내용보기, 탭 2 다시보기, 탭 2 내용 숨기기입니다. 현재 사용중인 코드가 포함되어 있습니다. 이렇게하면 탭이 올바르게 숨겨지고 올바르게 확장되지만 원하는 방식으로 앵커 요소를 클릭하면 각 탭이 전환되지 않습니다. 어떤 도움이라도 대단히 감사합니다.

$('.tabs').hide(); 
    $('ul.tabs li a').click(function() { 
     $('.content').show(); 
}); 
+2

탄원을 탭에 대한 HTML을 게시하십시오. – Francisc

+0

나는 다소 도움이되기를 희망하는 이미지를 제공했다. 생성 된 코드는 꽤 무거워서 정리하는 데 꽤 많은 시간이 걸릴 것입니다. 시간을 너무 많이 낭비하고 싶지는 않습니다. 제공된 이미지가 부족하면 알려 주시기 바랍니다. 이 모든 도움에 감사드립니다. – Threaded

답변

2

보다는 부모 요소를 활성화하는 .content를 사용하여

$('ul.tabs li a').click(function() { 
    $(this).toggle; 
}); 

, 당신은 다음을 위해 이런 일을하고 싶지 가/쇼를 숨길 수 있습니다, 그래서 클릭, 활성 탭을 클릭 할 때 때

if ($(this).hasClass("ui-state-active")) { 
    $(this).toggle(); 
} 

(이 솔루션은 당신의 jQuery UI 탭을 사용하는 가정합니다.)

+0

이것은 jQuery UI 파일이로드되고 있다고 가정합니다. –

+0

@JTSmith, 탭이 처음 작동하면로드해야합니까? – Marc

+0

어떻게 알 수 있습니까? 그는 jQuery UI 탭을 사용하고 있습니까? – Francisc

1

HTML을 볼 때까지 확신 할 수 없지만 $('.content').toggle();이 작동해야합니다.

+1

'$ ('. content')'는 모든 클래스 이름을 가진 클래스와 일치합니다. HTML을 보여주십시오. – Francisc

+0

http://postimage.org/image/8dx9b9eld/ – Threaded

0

도 가지고 문제가 계속 토글을 사용하는 경우 클릭 이벤트

$('ul.tabs li a').click(function() { 
    $('.content').toggle(); 
}); 

를 사용하여 탭이 페이지로드에 숨겨져있는 경우 .toggle()

$('.tabs').hide(); 
$('ul.tabs li a').click(function() { 
    $('.content').toggle(); 
}); 

, 당신은 CSS display: none;에 넣고해야 사용할 수, 그런 다음 각 탭에 대해 고유 ID를 작성하고이를 수행하십시오. 문제는 쿼리 내에있는 : 당신은 그 아이 탭 자체에 대한 클릭 이벤트 내에서

+0

토글을 사용하여 이것을 시도했지만, 불행히도 그것보다 복잡합니다. 탭 1을 두 번 클릭하면 해당 탭을 표시하거나 숨기려면 토글이 작동하지만 탭 1을 한 번 클릭하여 표시 한 다음 탭 2를 클릭하면 탭 1을 숨기는 대신 탭 1이 숨겨집니다. 이 탭 2를 보여줍니다. – Threaded

+0

그러면 각 탭마다 고유 한 'id'를 만들어야합니다. –

+0

그것은 모든 탭에서'.content'가 같은 클래스 이름이기 때문입니다. 탭 중 하나에 HTML을 표시하면 잘못된 점을 알려줄 수 있습니다. – Francisc

관련 문제