2009-08-16 4 views
3

이것은 jQuery 전문가에게는 매우 간단합니다.jQuery AJAX : "SAVED"메시지를 추가하고 잠시 후에 사라지게하는 방법

I가 < DIV 자료 = " form23 " > < 형태 > < 텍스트 영역 > blahblah </텍스트 영역 > < 입력 타입 = " 버튼 " 값 = " 저장 "의 onclick = " saveCaption (23) " > </형태 > </div >

SAVED 메시지를 원하는 경우 털이 사라지다. 하지만 폼이나 요소를 사라지게하고 싶지는 않습니다.

다음과 같은 AJAX 호출이 있습니다.

function saveCaption(id) { 

var queryString = $('#form'+id).formSerialize(); 

    $.ajax({ 

    type: "POST", 

    url: "includes/ajax.php?request=saveCaption", 

    data: queryString, 

    success: function(response) { 

     $('#form'+id).append(response) 

    } 

    }); 

    return false; 

} 

나는 응답을 추가 할 수 있습니다. 그러나 잠시 후 바로 사라지게하는 방법이 있습니다. 지금 당장은 계속 반복되고 마지막에 추가됩니다. 나는 fadeOut을 사용한 직후에 나타나고 사라지길 원합니다.

업데이트 : 저는 IV와 RaYell의 응답을 기반으로했습니다. 그것은 작동하지만 .. 우아한가?

기능 saveCaption (ID) {

var queryString = $('#form'+id).formSerialize(); 

    $.ajax({ 

    type: "POST", 

    url: "includes/ajax.php?request=saveCaption", 

    data: queryString, 

    success: function(response) { 

     $('#form'+id).append('<div id="message">'+response+'</div>'); 

     setTimeout(function() { 

      $('#message').fadeOut(function(){ 

      $(this).remove(); 

      }); 

     }, 1000); 

    } 

    }); 

    return false; 

} 당신이 당신의 메시지가이 (성공 콜백 내에서) 추가 추가 한 후

+0

저는 IV와 RaYell의 응답을 기반으로했습니다. 그러나 그것은 우아한가? function saveCaption (id) { \t var queryString = $ ('# form'+ id) .formSerialize(); \t $ 아약스 ({ \t \t 유형 : "POST", \t \t URL : \t \t 데이터 "/ ajax.php 요청 = saveCaption 포함?"queryString이, 을 \t \t 성공 : 함수 (응답) { \t \t \t $ ('# form'+ id).append ('

'+response+'
'); \t \t \t의 setTimeout (함수() { \t \t \t $ ('# 메시지') 페이드 아웃 (함수() { \t \t \t \t $ (이) .remove(). \t \t \t}) \t \t \t}, 1000); \t \t} \t}); \t false; } –

+0

이것이 가장 우아한 방법인지 아닌지는 분명히 대답 할 수 없습니다. 아마도 다른 방법으로이 문제를 해결할 수있을 것입니다. 그래도 다행! :) 건배. – theIV

답변

4

위의 RaYell의 답변을 조합하고 싶지만 fadeOut 콜백에서 remove를 사용하거나 다른 append에 계속 추가 할 것입니다. 적어도 필자는이를 기반으로 할 것이라고 생각합니다. 당신이 질문을 표현한 방식. 이런 식으로 작동 할 수 있습니다.

setTimeout(function() { 
    $('selector').fadeOut(function(){ 
    $(this).remove(); 
    }); 
}, 1000); 
3

:

setTimeout(function() { 
    $('selector').fadeOut(); 
}, 1000); 

가 뭔가 선택을 교체 실제로 것 너의 메시지와 일치해라.

+0

이해가 안되는지 .. 내 대답은 "저장 됨"입니다. 흠 .. 이해할 수 있도록 내 코드 내에 코드를 작성하는 것이 마음에 드십니까? –

+0

@Scott, @ RaYell이 당신에게 어떻게해야하는지에 대한 좋은 방향을 제시했기 때문에, 정확히 무엇을해야 하는지를 이해하려고 노력하는 것이 더 나을 것이라고 생각합니다. 그래서 사람들이 코드를 작성하는 올바른 장소가 아닙니다. –

관련 문제