2013-10-04 2 views
1

tabify http://unwrongest.com/projects/tabify을 사용하여 탭을 표시합니다.tabify jquery plugin을 사용하여 프로그래밍 방식으로 탭 변경

프로그래밍 방식으로 탭을 변경하는 방법을 파악하는 데 어려움을 겪고 있습니다. 여기

하나의 작업 예입니다

$(document).ready(function(){ 
    $('#menu').tabify(); 
}); 

나는 JQuery와 UI 탭을 사용하면 내가이 동작을 acheive 수 있다는 것을 알고 있지만, (때문에) 어쩔 수없는 사정에 내가 tabify 사용할 필요가 있지만 http://jsfiddle.net/S78Bt/.

답변

1

사용중인 프로젝트가 dead 인 것 같습니다. 최근에 업데이트를받지 못했으며 문서가 없습니다.

소스 코드를 살펴 보았습니다. 탭에 직접 액세스 할 수있는 API는 없습니다.

function changeTab(name) { 
    location.hash = name + '-tab'; 
} 

my example에서 작동 : 라이브러리 탭이 변화 할 것으로 예상하는 방법

유일한 해결책은보고에 의해 간접적으로 해킹하는 것입니다.

0

나는 그것이 최선의 방법인지는 모르지만, 적어도 효과가 있습니다. 우리는 당신이 볼 수 플러그인 tabify의 소스 코드를 보면 :

function getHref(el){ 
    hash = $(el).find('a').attr('href'); 
    hash = hash.substring(0,hash.length-4); 
    return hash; 
} 

function setActive(el){   
    $(el).addClass('active'); 
    $(getHref(el)).show(); 
    $(el).siblings('li').each(function(){ 
     $(this).removeClass('active'); 
     $(getHref(this)).hide(); 
    }); 
} 

당신은 유사한 접근 사용할 수 있습니다 : 그것은 거의 전체 라이브러리 자신을 재 구현 있기 때문에, jsfiddle

+0

이것은 좋은 방법이되지 않습니다. 또한 라이브러리를 변경하면 즉시 중단 될 수 있습니다. 복사 붙여 넣기는 항상 나쁜 것입니다. – Denis

+0

@Denis, 나는 복사/붙여 넣기가 거의 항상 나쁘다는 것에 동의하지만 어떻게 그것에 명시 적으로 라이브러리/플러그인을 명시 적으로 사용할 수 있습니까? – kasitan

+0

해당 플러그인 API를 사용합니다. API는 변경되지 않아야합니다. 구현이 변경되어야합니다. "형제 (형제)"및 변경할 수있는 기타 세부 정보 사용시 클래스 이름 "활성"으로 구현에 의존합니다. 이 라이브러리에는 공식 API가 없지만 의미 론적 방아쇠를 분별하려고 시도 할 수 있습니다. 제 대답에 설명했습니다. – Denis