2010-03-30 6 views
2

jQuery의 load 함수를 사용하여 ajax 요청이 div에 실패 할 경우 오류 메시지를로드합니다. 내 소스 코드에서로드 된 내용으로 div를 볼 수 있지만 페이지에 나타나지 않습니다. 무슨 일있어? 가지고 #messagejQuery로드, 소스 코드에서 div를 볼 수 있지만 표시되지 않습니다.

$(function() { 
    $(".submit").click(function() { 

    var element = $(this); 

    var id = element.attr('id'); 

    var note = $('#note-' + id).val(); 

    $('#message').show(); 

     $.ajax({ 
      type: "POST", 
      url: "/index.php/notes/new_note", 
      data: "id=" + id + "& note=" + note, 
      success: function() { 
       $('#notes-' + id).load('/index.php/ads #notes-' + id) 
       $('#note-' + id).val('') 
      } 
     }); 
     $('#message').load('/index.php/ads #message') 
     return false; 
    }); 
}); 
+1

어떤 div가로드되지 않습니까, 메모 또는 메시지입니까? 또한 html을 보여주십시오. –

+0

Firebug로 살펴보면 무슨 일이 일어 났는지 알 수있을 것입니다. 아마도 일부 CSS가 그것을 숨기고있을 것입니다. – Pointy

답변

1

아마도 AJAX 호출의 오류 처리기에 메시지로드를 넣거나 AJAX 호출이 수행 된 후에 실행하는 대신 AJAX 호출에서 반환 한 데이터에서 메시지로드를 검색해야합니다. 이것은 AJAX 호출이 비동기 적이기 때문에 AJAX 호출이 완료되기 전에 메시지를로드 할 가능성이 높기 때문입니다. 여러분이하는 일은 전적으로 서버 사이드 코드에 달려 있습니다. 서버 측에서 전체 컨테이너, 오류 및 모두를 생성 한 다음 원래 호출 후에 업데이트 된 HTML을 얻기 위해 일부 AJAX를 다시 호출하는 대신 호출에서 반환 된 값으로 내용을 간단히 대체하는 옵션을 탐색합니다. 완료되었습니다.

$.ajax({ 
    type: "POST", 
    url: "/index.php/notes/new_note", 
    data: "id=" + id + "& note=" + note, 
    success: function(html) { 
       $('#note-container').html(html); 
      } 
}); 
+0

어떻게해야할까요? 오류 처리를위한 jQuery 문서를 살펴 보았지만이를 구현하는 방법을 알 수는 없습니다. 참고로 CodeIgniter를 사용하고 있습니다. –

1

는 (또는 fadeTo/페이드 아웃의 jQuery 방법을 사용하여 CSS를 적용 중)에 적용된 모든 불투명도를 얻었다. 부모님 모두가 똑같은가요? visibility CSS 속성이 '숨김'으로 설정되어 있습니까?

show()은 요소의 display CSS 속성 만 변경합니다. opacity, visiblity 또는 요소 또는 그 부모와 같은 요소는 변경되지 않습니다.

+0

"소스 코드"는 서버 측을 의미한다고 가정합니다. 내 생각에 첫 번째 AJAX 호출이 아직 완료되지 않았기 때문에로드가 호출 될 때 "#message"div에 아무 것도없는 것입니다. – tvanfosson

관련 문제