0
나는 웹 사이트에 대한 탐색을 만들고있어이 같은 행동 버튼을 싶습니다
:jQuery를 :이 아니요() 후 .addClass()와 .removeClass()
- 활성 버튼 40px 높은 되세요 다른 사람들보다.
- 활성 버튼이 아닌 경우 마우스를 올리면 커서가 10 픽셀 위로 이동합니다.
- 버튼을 클릭하면 모든 버튼에서 활성 클래스를 제거하고 모두 원래 위치로 이동하고 클릭 한 버튼에 활성 클래스를 추가하고 클릭 한 버튼을 40px 위로 이동합니다.
이 내 jQuery 코드입니다 :
$(document).ready(function(){
$('#navigation a').not(".active")
.mouseover(function(){
$(this).stop().animate(
{top:"-10px"},
{duration:200}
)
})
.mouseout(function(){
$(this).stop().animate(
{top:"0px"},
{duration:200}
)
})
.click(function(){
$('#navigation a.active').animate(
{top:"0px"},
{duration:200}
)
$('#navigation a').removeClass("active");
$(this).addClass("active");
$(this).stop().animate(
{top:"-40px"},
{duration:200}
)
})
});
모든 것이 작동하는 것 같다 및 클래스가 주어진 제대로 제거되고있다. 유일한 문제는 not() 메서드가 나중에 addClass()를 사용하여 클래스를 얻은 사람이 아니라 초기 활성 버튼을 계속 차단한다는 것입니다.
[eventDeligation. (HTTPS : //learn.jquery합니다. co.kr/events/event-del egation /). 당신의 처리기는'활성'클래스가없는 요소들에만 붙습니다. 나중에 당신이 클래스에 '능동적으로'주는 요소는 아닙니다. – putvande
'.on'을 사용하여 이벤트 처리기를 등록하십시오 (** deprecated **'.live'의 [api 문서] (http://api.jquery.com/live/)의 토론 참조) – collapsar
또는 확인하십시오. 활성화 된 클래스 내부 처리기. 예 :'if ($ (this) .hasClass ('active')) return;'(그리고'not()'필터링 부분 제거) –