2011-01-19 4 views
0

아약스 성공에 나는 클래스를 숨기고 다른 클래스를 보여야한다. "foo"및 "bar"두 클래스가 있다고 가정합니다. 이제는 내 아약스가 성공할 때 "foo"클래스가 있고 "bar"클래스를 표시하려고합니다.클래스 숨기기를 표시하는 방법?

$.ajax({ 
     type:'POST', 
     url:"/test/", 
     data:{"test_data": my_data}, 
     success:function(data) { 

     }, 
     dataType:"json" 
     // here I want to hide the "foo" class and show the "bar" class. 
    }); 

사실 "foo"및 "bar"는 버튼 클래스입니다. "foo"클래스가있는 버튼을 클릭하면 숨기고 "bar"클래스를 가진 버튼을 보여 주어야합니다. 그 반대

+0

하나의 요소에 두 개의 클래스가 있습니까? 또는 각각의 클래스와 다른 요소? – Reigel

+0

주어진 답변의 차이점에서 알 수 있듯이 질문을 명확히해야합니다. 'foo'와'bar' 클래스를 사용하여 * 클래스를 삭제하거나 추가하거나 * 표시/숨기기를 원합니까? 요소에 두 클래스가 모두있는 경우 어떻게됩니까? –

답변

1

당신은 당신이 적용 할 요소 mentiond하지 않았다. 어쨌든 이것은 당신에게 아이디어를 줄 것이다 : (실패 아닌지에 관계없이)에 ajax request가 완료된 후

$.ajax({ 
    type:'POST', 
    url:"/test/", 
    data:{"test_data": my_data}, 
    success:function(data) { 

    }, 
    dataType:"json" 
    complete: function(xhr) { 
     // if you want to switch classes on a specific element 
     $('element_you_want_to_switch_classes').toggleClass('foo bar'); 

     // if you want to show/hide different elements 
     $('.foo').hide(); 
     $('.bar').show(); 
    } 
}); 

이 변경 사항을 적용합니다. 성공에 대한 변경 사항을 적용하려면 해당 라인을 success handler에 넣으십시오.

+0

사실 "foo"와 "bar"는 버튼 클래스입니다. "foo"클래스가있는 버튼을 클릭하면 숨기고 "bar"클래스를 가진 버튼을 보여 주어야합니다. 그 반대의 경우 –

+0

위의 제안은 "foo"만 감추지 만 "bar"는 표시 할 수 없습니다. –

+0

@ sun-the : 마크 업에'bar' 클래스의 요소가 있으면 "should"가 작동합니다. 그렇지 않으면 정확한 마크 업을 제공하십시오. – jAndy

1
$(".foo").hide(); 
$(".bar").show(); 
0

그냥 성공 함수에서 숨기기 및 표시 명령을 넣어 :

 
.... 
success:function(data) { 
    $(".foo").hide(); 
    $(".bar").show(); 
} 

관련 문제