2012-08-02 2 views
0

버튼이있어서 동적으로 생성됩니다. 처음에는 클래스를 "활성"으로 변경합니다. 클래스를 "비활성"으로 변경하면됩니다. u를 다시 클릭하면 활성 상태로 변경됩니다.jquery 켜기/끄기 문제

그래서 나는 코드를 사용하여 클릭 이벤트를 할당했습니다.

$(".active").on("click",function(){ 
$(this).removeClass('active').addClass('inactive'); 
}); 

$(".inactive").on("click",function(){ 
$(this).removeClass('inactive').addClass('active'); 
}); 

첫 번째 함수가 호출 될 때마다 문제가 발생합니다. 대신에 라이브를 사용하면 잘 작동합니다. 어떻게 해결할 수 있을까요?

답변

1

당신은 단순히

$(selector).live(event_type, function(){});

같은

$(document).on(event_type, selector, function(){});

$("body").on("click", '.active', function(){ 
    $(this).removeClass('active').addClass('inactive'); 
}); 

$("body").on("click", '.inactive', function(){ 
    $(this).removeClass('inactive').addClass('active'); 
}); 
+0

빠른 답변 주셔서 감사합니다. –

1

하나의 옵션입니다 .live, .on에 변경할 수 없습니다, 그것은 HTML에 약간의 변화가 필요 다음과 같습니다.

$(function(){  
    $(".toggle").on("click", function(){ 
     $(this).toggleClass("active").toggleClass("inactive"); 
    });  
}); 

이 그들에게 할당 된 toggle 클래스의 모든 요소에 영향을하고, 처음에 inactive 또는 active 하나를 가지고 있다고 가정합니다.

0

jquery의 toggleClass 메소드를 시도하십시오.

나는 링크에 대해 동일한 것을 달성하는 두 가지 방법을 보여주는 데모 here을 작성했습니다. 버튼에 대해서도 똑같이 할 수 있습니다.