2014-02-13 4 views
0

jQuery를 사용하여 사용자가 클릭 할 때 div에 "selected"클래스를 추가합니다 (축소판에 빨간색 테두리가 추가됨). 동시에 이전에 선택한 div에서 클래스를 제거하려고합니다.형제뿐만 아니라 모든 div에서 jQuery를 사용하여 클래스를 제거하는 방법?

모든 div가 형제이지만 문서의 다른 div가 선택된 상태로 유지되면이 기능을 사용할 수 있습니다. 내가 설계하고 개발하고있는 페이지는 div가 모두 형제가 될 수 없다는 것을 요구합니다. 형제뿐만 아니라 문서에서 이전에 선택한 div에서 "selected"클래스를 제거하려면 어떻게해야합니까?

당신은보고 jsfiddle 내 예를 편집 할 수 있습니다 http://jsfiddle.net/3s4dM/6/

jQuery를 :

$(".thumbnail").click(function() { 
    $(this).addClass("selected").siblings().removeClass("selected"); 
}) 

CSS :

.thumbnail { 
    background: #dddddd; 
    width: 42px; 
    height: 42px; 
    margin-bottom: 5px; 
} 

.thumbnail:hover { 
    cursor: pointer; 
} 

.thumbnail.selected { 
    width: 36px; 
    height: 36px; 
    border: 3px solid #C72D30; 
} 

HTML :

,
<section> 

    <div class="thumbnail"></div> 

</section> 

<section> 

    <div class="thumbnail"></div> 

</section> 

<section> 

    <div class="thumbnail"></div> 
    <div class="thumbnail"></div> 
    <div class="thumbnail"></div> 

</section> 
+0

모든 제안을 주셔서 감사합니다. 진행중인 작업을 여기에서 볼 수 있습니다 : http://www.tenbluedevils.com/esalon/tinted-love/product-detail-tinted-love.html – dylanstewart

답변

3

당신은. 다음에서 selected 클래스를 제거하는 클래스 thumbnailselected 모든 div 요소를 얻을 수있는 결합 선택기를 사용

(다시 현재의 썸네일에 selected를 추가하고 있기 때문에 그 또한 사용 not() 무시) 수
$(".thumbnail").click(function() { 
    $('.thumbnail.selected').not(this).removeClass("selected") 
    $(this).addClass("selected"); 
}) 

데모 : Fiddle

+0

감사! 그건 잘된거야. 매우 감사. 다른 제안도 잘 작동하지만'.not()'과 결합 된 선택자를 사용하는 것을 선호합니다. – dylanstewart

1

당신은 .thumnail 요소를 클릭 할 .selected을 가지고 현재의 모든 요소에서 클래스 selected를 제거하고 클래스 selected을 추가 할 수 있습니다

$(".thumbnail").click(function() { 
    $('.selected').removeClass("selected"); 
    $(this).addClass("selected"); 
}); 

Updated Fiddle

0

가 모든 사업부의의 당신처럼 할 수 있다면 이.

$(".thumbnail").click(function() { 
    $('div').removeClass('selected'); 
    $(this).addClass("selected"); 
}); 
+1

이 예제에서는 작동하지만 이것은 다음과 같은 경우에 적합하지 않을 수 있습니다. general - 특히 "selected"는 재사용 가능한 클래스입니다. –

+1

오, 그래, 나는이 대답을 다른 사람들보다 더 잘하는 것으로 생각한다. –

1

이 시도?

$(".thumbnail").click(function() { 
    $('.selected').removeClass('selected'); 
    $(this).addClass("selected"); 
}); 
+0

작동! [JSFiddle] (http://jsfiddle.net/3s4dM/7/) –

관련 문제