2013-08-30 2 views
0

목록이 있고 클릭 된 요소에 특정 클래스가 있는지 여부에 대한 switch 문을 실행하고 싶습니다. 그런 다음 다른 모든 요소를 ​​숨 깁니다.클래스를 찾으려면 jQuery switch 문을 사용하십시오.

내가 가지고있는 것이지만 switch 문은 클릭으로 설정된 변수를 선택하지 않습니다.

<ul> 
    <li class="all"><a>Show all</a></li> 
    <li class="design"><a>Design</a></li> 
    <li class="dev"><a>Development</a></li> 
    <li class="ux"><a>UX</a></li> 
    <li class="print">Print</a></li> 
</ul> 

과 :

$(function() { 
$('a').click(function() { 
    var wrkType = $(this).parent().attr('class') 

    //alert(day) // alerts ! 
    }); 
}); 

switch (wrkType) 
{ 
case 'dev': 
    alert('yahmon!') 
    if (!$('li').hasClass('dev')) { $('li').fadeOut(300); } 
    break; 
case 'all': 
    //All things on 
    break; 
} 

PLZ 날은 클릭 콜백에 로컬 global.Now :

다른 함수의 변수에 액세스하는 경우
+0

사용 $ ('li') .not (".dev, .all") .fadeOut (500); – colin

답변

1

같은

$(function() { 
    $('a').on('click', function() { 
    var wrkType = $(this).parent().attr('class') 
    WorkType(wrkType); 
    //alert(day) // alerts ! 
    }); 
}); 

function WorkType (wrkType) { 
switch (wrkType) 
{ 
    case 'dev': 
     alert('yahmon!') 
     if (!$('li').hasClass('dev')) { $('li').fadeOut(300); } 
    break; 
    case 'all': 
     //All things on 
    break; 
} 
} 

내가 on 대신 click를 사용하는 것이 좋습니다 것입니다 작동합니다.

+0

스위치 상태는 내부에 유지할 필요가 없습니까 클릭하면? –

+0

내 대답이 업데이트되었습니다. – 26ph19

+0

나를 보여 주셔서 고마워요. 나는 click 기능 내부에서 스위치를 부를 수 있습니다. 각자 무엇을하고 있는지 잘 모르므로 wrkType이라는 이름을 여러 번 사용하는 것이 혼란 스럽습니다. 더 나은 것을 사용하는 이유는 무엇입니까? – colin

1

, 당신의 workType 변수를 확인 배울 HALP 기능.

동일한 클릭 이벤트 콜백에서 실행하려면 전환 코드를 콜백 함수 내부로 이동하십시오. 이

$('a').click(function() { 
    var wrkType = $(this).parent().attr('class') 
    switch(wrkType){ 
     case 'dev': 
    -- 

-- 
    } 
}); 
+0

클릭 기능의 일부로 스위치 케이스를 추가하십시오. 그렇지 않으면 실행되지 않습니다 – user1333371

+0

@ user1333371 바로 지금입니다. 고아입니다. –

+1

이것은 단 하나의 클래스에서만 작동합니다. – roastedtoast

관련 문제