2013-08-06 2 views
0

특정 목록을 선택할 때 class="active" 속성을 설정하고 싶습니다. 예를 들어, 특정 목록이 활성화 된 경우 다른 항목이 선택되면 활성 상태가되어야 &, 해당 목록이 활성화됩니다. 현재 jQuery 코드는 목록에서 항목을 선택할 때 모든 목록을 활성으로 설정합니다. 대신 그 항목이 선택된 활성 상태 여야합니다. jQuery 코드는 어떻게 수정합니까?선택시 활성화 된 클래스 설정

<ul class="nav nav-pills nav-stacked span5"> 
     <li class = "list"><a href="#" class="span3">abc</a></li> 
     <li class = "list"><a href="#" class="span3">def</a></li> 
     <li class = "list"><a href="#" class="span3">ghi</a></li> 
     <li class = "list"><a href="#" class="span3">jkl</a></li> 
</ul> 

jQuery를

$(document).ready(function() { 
    $(".span3").click(function() { 
    $('.list').attr("class","active");   // sets all the list item active. Instead I want only that particular element to be active. 

    }); 

}); 
+1

http://jsfiddle.net/hJYfu/2/ –

+0

부트 스트랩으로 작동합니까 ... –

+0

아니요, 부분적으로 작동합니다. 새로운 요소를 선택할 때 이전에 선택된 요소의 선택을 취소하지 않습니다. – PythonEnthusiast

답변

3

사용 $(this).parent()list 클릭 얻을, 그것은 addClass 대신 attr를 사용하는 것이 더 쉽습니다.

$(document).ready(function() { 
    $(".span3").click(function() { 
     $(this).parent().addClass("active"); 
    }); 
}); 

당신은 다른리스트의 모든뿐만 아니라 활성화되지하려면 :이 하나 클래스를 추가 할 수 있습니다

$(document).ready(function() { 
    $(".span3").click(function() { 
    $('.list').removeClass('active'); 
    $(this).parent().addClass("active"); 

    }); 

}); 
+0

Ho ShadowCat7, 해 보았습니다. 작동하지 않습니다. 어떤 제안을하시기 바랍니다. 항목을 선택하면 활성화되지 않습니다. – PythonEnthusiast

+0

제거 및 추가가 함께 작동하지 않는 것 같습니다. 'removeClass'를 제거하면 항목이 활성화되지만 다른 항목은 비활성화됩니다 (분명히). – PythonEnthusiast

+0

나는 [this jsFiddle] (http://jsfiddle.net/hPf9t/)에서 작업하고있다. – ShadowCat7

0

사용 addClass 방법 대신 ATTR :

$(document).ready(function() { 

    $(".span3").click(function() { 
     $(this).parent().addClass("active");  
    });  
}); 

및 rem 이 같은 비켜 클래스 :

$(document).ready(function() { 

    $(".span3").click(function() { 
     $('.list').removeClass("active");  
    });  
}); 

이의 jQuery API 문서 addClass() 및이를 참조 removeClass()

UPDATE :

그래, 난 JQuery와 더 많은 기능을 제공

+0

부분 용액. 다른 항목을 선택하면 이전 목록이 비활성화되지 않습니다. – PythonEnthusiast

+0

그냥 그것을 달성하기 위해 업데이 트 .. 지적 주셔서 감사. – Jithesh

+0

글쎄, 당신의 업데이트 된 솔루션을 시도해보십시오. 여전히 같은 문제. 왜 그럴까? – PythonEnthusiast

1

$(document).ready(function() { 
    $(".span3").click(function() { 
     $('.list').removeClass("active"); 
     $(this).parent().addClass("active"); 
    }); 
}); 
+0

클릭했을 때'list' 엘리먼트 중 하나만 활성화하면됩니다. 그 (것)들 모두에'활동적인'을 추가하는. – ShadowCat7

1

부모()을 잊는다. 그 누구도 사용하고 있지 않습니다.

JQuery와 코드 :

$(document).ready(function() { 
    $(".nav>li").click(function() { 
     $(this).siblings('.active').toggleClass("active"); 
     $(this).toggleClass("active"); 
    }); 
}); 

링크 : http://jsfiddle.net/techsin/hJYfu/3/새 HTML 구조에

주의하십시오.

+0

부트 스트랩이 작동하지 않습니다. – PythonEnthusiast

+0

무언가를 클릭하면 어떤 일이 발생합니까? –

+0

이 클래스는 '활성'상태가되지만 비활성화하려면 다시 클릭해야합니다. 오히려 새 요소를 선택하면 자동으로 비활성화됩니다. – PythonEnthusiast

관련 문제