2013-04-01 2 views
0

누군가 나를 구 해주십시오! 나는 너무 좌절해서 내가 뭘 잘못하고 있는지 모릅니다. 내 코드에 어떤 문제가 있습니까? URL을 기반으로 특정 탭을 활성화합니다. 예를 들어 www.mywebsite.com#tab3은 내 탭의 tab3을 활성화합니다. 이것은 내가 달성하는 방법입니다 : 나는 location.hash을 사용하여 위치를 얻고 href와 비교 한 다음 해당 탭을 활성화합니다. 하지만 여기에 문제가 있습니다. 두 가지 스타일의 탭 (ul#tabs li aul.tabs li a)이 있습니다. 나는 잘 선택하고 잘하고 있는가? 이 코드입니다 :내 jquery tabber 코드에 문제가 있습니까?

var hash = location.hash; 


$(".tab_content").hide(); //Hide all content 

if ($("ul#tabs li a[href='" + hash + "'], ul.tabs li a[href='" + hash + "']").length) { 
    $("ul#tabs li a[href='" + hash + "'], ul.tabs li a[href='" + hash + "']").parent().addClass("active"); //Activate tab 
    $(hash).show(); 
} 
+1

는 무엇을 하는가를? 그것은 무엇을하지 않습니까? 그것은 무엇을해야 하는가? – 0x499602D2

+0

@David가 말한 것, 플러스 [jsFiddle] (http://jsfiddle.net) :) – Chad

+0

@David, @Chad 그것은 URL을 기반으로 특정 탭을 활성화하므로 'location.hash'를 사용하여 href와 비교 한 다음 해당 탭을 활성화하십시오. 그러나 나는 2 개의 다른 스타일의 탭 ('ul # tabs li a'과'ul.tabs li a')을 가지고 있습니다. –

답변

0

당신은이 작업을 용이하게하는 기능을 사용할 수 있습니다

var hash = location.hash; 

function active_hash(type) { 
    var $node = $("ul" + type + "tabs li a[href='" + hash + "'], ul.tabs li a[href='" + hash + "']"); 

    if ($node.length) { 
     $node.parent().addClass("active"); 
     $(hash).show(); 
    } 
} 

active_hash('#'); 
active_hash('.'); 
관련 문제