2011-07-17 2 views
0

이 글에 도움이되고 싶습니다. 포트폴리오 아이템 용 필터 박스를 만들고 있습니다.if-statement에서 href-class와 div-class를 일치 시키십시오.

나는 텍스트와 같은 하나의 클래스 이름을 가진 네 개의 링크가 있습니다. 모든 포트폴리오 항목이 나열되어 있습니다. 각 포트폴리오 항목은 .listItem과 링크 클래스 중 하나 인 두 개의 클래스가있는 div에 있습니다.

예 : <a class="Architecture" href="#">

난 클릭에 애니메이션을 적용 할 DIV는 다음과 같습니다 <div class="listItem Architecture">

이 내 스크립트이고 키우면가 작동하지 ...

$(document).ready(function(){ 

    var filterTrig = $('#sortPort a').attr('class'); 

    $('#sortPort a').click(function() { 
     $('.listItem').each(function(){ 
      if ($(this).is(filterTrig)){ 
       $(this).hide(); 
      } 
     }); 

     return false; 
    }); 
}); 
+0

jQuery는 "불가능하다". –

+0

명확하게 설명해주세요. 일치하는 클래스 이름으로 div를 숨기거나 다른 클래스를 숨기시겠습니까? – Mottie

답변

1

is() 소요 선택기. 당신은 클래스 이름과 함께 최선을 다하고 있습니다, 그래서 당신은 대신 hasClass()를 사용할 수 있습니다

$(document).ready(function() { 
    $("#sortPort a").click(function() { 
     var filterTrig = $(this).attr("class"); 
     $(".listItem").each(function() { 
      if ($(this).hasClass(filterTrig)) { 
       $(this).hide(); 
      } 
     }); 
    }); 
}); 

또한, 마침표 (.)와 클래스 이름 앞에 수있는 수준의 선택으로 바꿀하기 위해,하지만 앵커 요소가 여러 클래스를 노출하는 경우 작동하지 않습니다.

+0

아무 일도 일어나지 않습니다 ... 정말 모르겠어요. 링크와 동일한 클래스 이름을 가진 div를 분류하는 다른 방법이 있습니까? 나는 div()와 앵커 (anchor)의 문자열을 연결 클래스 이름없이 div에 애니메이션을 매치하려고 시도하면서 text()로 시도했다. –

+0

@Samuel, 한 번만 'filterTrig'를 설정했다. 아마 문제. 내 대답은 업데이트 된 코드를 참조하십시오. –

+0

감사! 코드로 더 많은 일을하고 다른 방법을 생각해 냈습니다. 아마도 거대하고 추악한 글이 쓰이지 만 스크립트는 작동합니다. 모든 효과를 포함하여, 이것 (이것은 1979design.se/portfolio에서 생방송을보십시오)을 : 다시 한번 감사드립니다! –

0

감사합니다. 나는 코드로 더 많은 일을했고 다른 해결책을 찾았다. 그것은 아마도 거대하고 추악한 것으로 써졌지만, 현재 스크립트는 작동합니다.

var listItem = $('.listItem') 
     var sp = 'currentSortPort' 
     $('#sortPort a.filter').bind(
      'click' , function(a) { 
       var trigger = $(this).html(); 
       var portType = '.listItem'+'.'+trigger; 
        $('h3').removeClass(sp); 
        $(a.target).parent().addClass(sp); 

       $(listItem).each(function() { 
        $(this).fadeTo('fast', 1); 
        $(portType).addClass('selected'); 
        $(this).not('.selected').fadeTo('medium', 0.1); 
       }); 
       $('.listItem').removeClass('selected');    
     return false; 
    }); 
    $('a.reset').click(function(b){ 
      $('h3').removeClass(sp); 
      $(b.target).parent().addClass(sp); 
      $(listItem).fadeTo('fast', 1); 
      return false; 
    }); 

감사를 다시 : 그 같은이 (1979design.se/portfolio 라이브를 참조) 모든 효과를 포함

! 너는 맞다, jQuery는 불가능하지 않다;) 초보자가 할 때 거대한 대본 만.

관련 문제