2012-02-16 3 views
0

대체되지 중복되고 난 다음 코드가이 기본적으로 페이지의 표 보고서의 각을 얻고 사용자가 구성 양식을 사용하여 갱신ajaxSubmit 대상은

$('#refresh').click(function() { 

    alert($('.report-container').length); 

    $('.report-container').each(function() { 

     var accordian = this; 
     var url = $(this).children(':first-child').val(); 

     $('form').ajaxSubmit({ 
      url: url, 
      success: function (responseText, statusText, xhr, $form) { 
       $(accordian).html(responseText); 
      } 
     }); 

    }); 
}); 

합니다.

나는 단지 '.report-container'요소를 서버에서 다운로드 한 조각으로 바꿀 것으로 예상됩니다. 그러나 이것이 실행될 때마다 alert($('.report-container').length);에 대한 호출이 증가됩니까?

이것은 모든 종류의 문제를 일으키고 있습니다. obv - 무엇이 없습니까?

나는 또한

가 나는 또한 서버가 하나 응답하는지 확인하고 조각에 하나의 '.report - 컨테이너가해야 그렇게 할 수 같은 결과로 ajaxForm 플러그인의 대상 속성을 사용하여 시도 FTR 1 -> 1 대체가되어야합니다.

답변

1

, 그것은 대체됩니다 : : 그래서 교체 후 얻을

$('#refresh').click(function() { 
    var container = $('.report-container'); 
    var url = container.children(':first-child').val(); 
    $('form').ajaxSubmit({ 
     url: url, 
     success: function(responseText, statusText, xhr, $form) { 
      container.replaceWith(responseText); 
     } 
    }); 
}); 

다시 추가/유지, 하나 이상의에 확장 원하는 경우 선택 항목을 각각 "accordian"으로 캐시합니다.

$('#refresh').click(function() { 
    $('.report-container').each(function() { 
     var accordian = $(this); 
     var url = accordian.children(':first-child').val(); 
     $('form').ajaxSubmit({ 
      url: url, 
      success: function(responseText, statusText, xhr, $form) { 
       accordian.replaceWith(responseText); 
      } 
     }); 
    }); 
}); 
1

요소를 바꾸려면 .replaceWith()을 사용하십시오.

html()은 요소의 내용을 바꿉니다. 당신이 진정으로 하나 개의 컨테이너가있는 경우

<div class="report-container"> 
    <div class="report-container"> 

     .... 

    </div> 
</div> 
관련 문제