2013-06-14 3 views
0

나는 따라 잡고 경고를 할 수 있습니다. 선택한 버튼의 클래스를 어떻게 변경합니까?동적 버튼의 CSS 변경

$('body').on("click", "button[name=likebtn]", function(){ 
    alert($(this).attr("value")); 

    $(this).toggleClass('btn btn-mini likebtn'); 
// OR 

    $(this).addClass('btn btn-mini likebtn').removeClass('btn btn-mini btn-primary likebtn'); 
}); 

버튼은 동적으로 출력됩니다 :

$('#div').append("<button class='btn btn-mini btn-primary likebtn' name='likebtn' type='button' value='"+obj.value+"'>"+"LIKE"+"</button>"); 

내가 시도 다음했지만 실패 : 당신에 의해 btn btn-mini likebtn를 추가하기 때문에

+0

함수 또는 이벤트 또는 그 안에 있습니까? 당신이 가지고있는대로 모든 코드를 함께 게시 할 수 있습니까? – Alvaro

+0

수정 됨, Steve! –

+0

sry,하지만 왜 folowing 클래스 'btn btn-mini likebtn'을 추가하고 제거하는지 모르겠습니다. 나는 'btn-primary'클래스 만 추가하고 제거 할 것입니다. $ (this) .toggleClass ('btn-primary'); – franki3xe

답변

2

어쩌면 당신은 addClass()

$(this).removeClass('btn-primary').addClass('btn btn-mini likebtn'); 

전에 removeClass()를 사용한다 .addClass('btn btn-mini likebtn') 그리고 나서 당신은 r .removeClass('btn btn-mini btn-primary likebtn');

편집를 호출하여 가져 가십시오 : 제거 할 경우에만 btn-primary 클래스 :

$('button[name=likebtn]').on("click", function(){ 
// ... 
$(this).removeClass('btn-primary'); 
}); 
+0

이것이 작동하지 않습니다 ... 어디에서 잘못 될 수 있습니까? 버튼이 변경되지 않습니다. –

0

당신은 당신이 다시 코드 아래

$('body').on("click", "button[name=likebtn]", function(){ 
    alert($(this).attr("value")); 

    $(this).toggleClass('btn-primary'); 

}); 
+0

안녕하세요, 솔루션을 설명해 주시겠습니까? –

+0

어떤 문제가 있는지 잘 모르겠습니다. :)하지만 나머지 모든 클래스가 여전히 동일하고 클래스를 추가하고 제거하는 이유가 표시되지 않기 때문에 btn-primary 클래스 만 제거하면됩니다. – franki3xe

+0

그리고 당신의 함수'$ ('body')가 어디에 있는지 모르겠다. function document가 준비되어 있다면, js 코드에서 on ("click", "button [name = likebtn]", function() 이 함수를 다시 호출하면 안된다. – franki3xe

0

을 실행해야 몸에 버튼을 추가하는 경우 이미 'btn-primary'클래스를 버튼에 추가했기를 바랍니다. 그리고 그냥 'btn btn-mini likebtn'클래스를 추가하고 'btn-primary'클래스를 제거해야합니다. 그런 다음 아래에서 시도하십시오.

$(this).addClass('btn btn-mini likebtn').removeClass('btn-primary'); 
+0

사실, 그냥 btn-primary를 제거해야한다. –

+0

하지만 작동하지 않는다. –

+0

'btn-primary'클래스를 제거하면된다. $ (this) .removeClass ('btn-primary'); – Mahesh