2014-06-13 3 views
4

각 이미지가 클래스에 묶여있는 목록이 있습니다.jquery를 사용하여 'this'클래스의 CSS 스타일을 어떻게 바꿀 수 있습니까?

var hoverList = this.hoverable.getAllList() //this gets the list. 

이미지를 마우스로 가리키면 텍스트가 다른 영역에 있지만 표시 할 클래스가 필요합니다. 나는

hoverList.mouseover(this.hoverable.displayTheDeets) 

를 호출하고 나는 문자 그대로의 명령

$(".project-details").find(".code-fusion") 

그것이 내가 원하는 요소를 반환을 실행하는 경우는 콘솔에서

displayTheDeets: function(){ 
    big=$(".project-details") 
    thisClass=$(this).attr("class") 
    console.log(thisClass) 
    //$(big).find(thisClass).css("display","") 
    $(big).find(thisClass).css("display", "block") 
    //$(big > thisClass).css("display","block") 
} 

를 실행합니다. 디스플레이를 아무런 문제없이 바꿀 수 있습니다.

내 문제는 thisClass와 같다고 생각합니다. 어떤 생각이라도 감사 할 것입니다.

+0

당신은 big''의 앞에'var'을 넣어해야하며,'thisClass'. – christian314159

+0

여러 CSS 클래스가 포함 된 요소가 있으면이 기능이 작동하지 않습니다. 'class = "foo bar" –

답변

5

시도,

big.find('.' + thisClass).css("display", "block"); 

하거나

big.find('.' + thisClass).show(); 

.attr('class')이 클래스는 특정 요소에 사용되는 반환, 그것은 선택의 형식으로 클래스 이름을 반환 실 거예요 있습니다.

추가 참고 : 그리고 때때로 당신이있는 경우 접두사 점으로 시도 $('.class1 class2 class3')

3

처럼 무효로 다음이 선택을 할 것입니다 특정 요소로 설정 한 개 이상의 클래스입니다. attr ("class")는 접두어가 아닌 이름 만 반환합니다.

$(big).find("."+ thisClass).css("display", "block") 

또는

$(big).find("."+ thisClass).show(); 
+0

sudharsan, jquery 객체를 $()로 다시 래핑 할 필요가 없습니다. 이점이 없습니다. –

1

$(big).find("."+ thisClass).css("display", "block") 
0

문제의 일부는 이미 충분히 답하고있다보십시오; 그러나 나는이 문제를 다른 방법으로 해결할 것을 제안합니다.

호버링 요소의 클래스와 별도로 클래스 이름을 정의 할 수 있습니다 (예 : 그런 다음

<... class="something" data-linked="theclass"> 

: 암시 적 전역을 만드는으로

displayTheDeets: function(){ 
    var className = $(this).data('linked'); 

    $(".project-details").find('.' + className).show(); 
} 
관련 문제