2009-11-25 2 views
0

탐색 제목을 클릭 할 때 &이 붕괴하는 사이드 바 탐색을 작성했습니다. 이 모든 것이 훌륭하게 작동합니다. 그러나, 내가 확장/탐색 그룹 중 하나를 열고 클릭하면 페이지로 이동, 새 페이지가로드 될 때 모든 탐색 그룹이 다시 닫힙니다. 나는 능동적 인 nav 그룹이 열린 채로있을 수있는 길을 찾고 싶다. 여기 JQuery를 사용하여 새 페이지를로드 할 때 활성 하위 탐색을 열어 두십시오.

내가/확장 붕괴에 사용 한 것입니다 :

/* Collapse and Expand */ 
$(".slideTitle").click(function() { 
    $(".indexListOpen").removeClass("indexListOpen").addClass("indexList"); 
    $(this).next().toggleClass("indexList").toggleClass("indexListOpen"); 
}); 

를 (그것이 현재 탐색 그룹의 하나가 한 번에 열 수 있도록 설정하는 것) 그리고이 무엇 인 I

/* keep current nav group open */ 
var path = location.pathname; 
$('.indexListOpen a[@href$="' + path + '"]').addClass("selected"); 
$(".selected").parent().parent().removeClass("indexList").addClass("indexListOpen"); 

작동하지 ... 그래서 내가 잘못을 많이하고 있어요 확신 : 새로운 페이지가로드 할 때 현재 탐색 그룹 개방을 유지하기 위해 사용하려고했다. 내가 작업하고있는 페이지는 instarservices.com/commercial에 있습니다.

도움이 되었습니까?

답변

1

dcneiner에 따르면 @은 jQuery의 최신 버전에서 더 이상 사용되지 않습니다. 그러나 신선한 페이지로드에 존재하지 않는 indexListOpen을 타겟팅하는 것으로 보입니다. 그래서 그 중 하나를 제거하거나 indexList로 변경하고는

$('a[href$="' + path + '"]').addClass("selected"); 

또는

$('.indexList a[href$="' + path + '"]').addClass("selected"); 
+0

감사합니다 !! 이것은 매력처럼 일했습니다! – VUELA

1

jQuery 1.3 이상 (포인트 버전)을 사용하는 경우 @ 심볼을 사용하여 속성 선택기를 호출 할 수 없습니다. 또한 시작 슬래시가 있으면 문제가 발생할 수 있습니다. 사용하기 전에

  1. 당신은 / 문자를 이스케이프해야 할 수 있습니다 : 당신은 브라우저의 차이로 실행 (다른 일부에서 작동) 경우

    var path = location.pathname.replace(/(^\/)/g,''); // Removes the opening slash if present 
    $('.indexListOpen a[href$=' + path + ']').addClass("selected"); 
    

    다음 세 가지를 확인 : 그래서 나는이 일을 권하고 싶습니다 그것은 jQuery를 선택

  2. 에 당신은 당신의 선택기 대부분의 Windows 서버에서
  3. 의 끝 부분에 존재하지 않는 pathname 뒤에 슬래시를 받고있을 수 있습니다, URL 년대는 대소 문자를 구분하지 않습니다. .toLowerCase()path = location ... 문 끝에 추가하고 href 특성이 모두 소문자인지 확인하십시오.

이러한 제안 사항이 작동하지 않는 경우, 문제 해결을 위해 HTML을 게시하여 시도해보십시오.

+0

큰 도움이 작동합니다! 정말 고마워! @ 기호가 사용되지 않음을 알지 못했습니다. 나는 당신의 다른 팁도 들여다 볼 것입니다! – VUELA

관련 문제