2014-10-23 6 views
0

다중 레벨 푸시 메뉴를 스크립팅하고 있지만 벽에 부딪혔다.두 개의 var를 비교 연산자로 사용하는 경우

구조 :

메뉴 링크 1 - I 링크 1을 누르면 메뉴 C

그것이 여는 등> 열리면 -> 메뉴 B에게

메뉴 (2)는 링크를 열고 메뉴 B, 링크 2를 클릭하면 메뉴 B가 닫히고 메뉴 C가 열립니다. Ok

링크 1을 클릭하면 메뉴 B가 열립니다. b 내가 링크 1을 다시 클릭하면 그 메뉴를 닫고 다시 열지 않기를 원합니다.


그래서 나는 (사업부는 글로벌 var에 $의 2real에 저장) 수준의 열 메뉴를 저장하고 같은 레벨 (DIV 글로벌 var에 $의 2target에 저장)에 대한 열 대상 메뉴를 저장하고있어 그리고 메뉴를 열기 위해 함수를 호출하기 전에 if ($ 2target! = $ 2real)을 추가했습니다 (그래서 동일한 메뉴를 다시 열지 않습니다).

console.log를 사용하면 $ 2target이 실제로 $ 2real 인 것을 볼 수 있지만 if는 어쨌든 않습니다. 나는 (1! = 1)을 사용하여 테스트했고 작동합니다. 그래서 문제는 ($ 2target! = $ 2real)입니다.

코드를 게시 할 수 있지만 실제로 커지고 있습니다. (나는 많은 경험이없는 꽤 이후 하지)

+0

당신은 어떤 코드가 있습니까? 너 뭐 해봤 니? 모든 것을 게시하지 않고 무엇을하려고하는지 보여주는 간단한 코드 예제를 만들 수 있습니까? – DLeh

+0

고맙습니다. epascarello가 트릭을했습니다. – JCML

답변

0

당신의 jQuery 객체가 아닌 요소

if ($2target.get(0) != $2real.get(0)) 

또는 is()

if ($2target.is($2real)) 
+0

감사! 그것은 효과가 있었다. 사이트에서 허용하는대로 즉시 답변을 수락합니다. – JCML

0

나는이 작업을 수행 사용을 비교하기 때문에 내 프로젝트 중 하나. 문서 준비 기능에이

function toggleSublinks(link){ 

    var href = $(link).attr('href'); 
    $target = $(href); 
    if($target.hasClass('active')){ 
    $target.slideUp().removeClass('active'); 
    } else { 
    $('.top-link').slideUp().removeClass('active'); 
    $target.slideDown().addClass('active'); 
    } 
} 

다음과 같은 내 코드를 보면

$('.top-link').click(function(e){ 
    e.preventDefault(); 
    toggleSublinks(this); 
});