2011-11-21 10 views
1

에서 빼기, 다음 코드는 내가이와 클릭 때 제거한다는 이미지를 테이블이 내 목표제거 테이블 행, 내가 jQuery로 아주 새로운 오전 합

을 달성하는 것으로 2 개 개의 다른 코드의 콜라주 테이블 행은 아래 코드의 첫 번째 부분입니다.

스크립트의 두 번째 부분은 당신이 합도 그에 따라 변경하는 행을 제거 할 때 있도록 만들려고 노력하고 모든 테이블 행

의 합을 찾습니다. 따라서 테이블 행을 제거하면 해당 테이블 행의 총계가 총계에서 뺍니다. 나는 당신이 삭제 행에 따라 변경 합 필요

테이블 행 모든 테이블 행

$(document).ready(function() { 
    //this calculates values automatically 
    calculateSum(); 

    $(".txt").live("keydown keyup", function() { 
     calculateSum(); 
    }); 
}); 
     function calculateSum() { 
      var sum = 0; 
      //iterate through each textboxes and add the values 
      $(".txt").each(function() { 
       //add only if the value is number 
       if (!isNaN(this.value) && this.value.length != 0) { 
        sum += parseFloat(this.value); 

       } 
       else if (this.value.length != 0){ 

       } 
      }); 
      $("#sum").html(sum.toFixed(2)); 
     } 

만약의 합계를 계산 jQuery를의

$(document).ready(function(){ 
     $('table#FeatureMatrix td a.delete').click(function() 
     { 

      { 
       var id = $(this).parent().parent().attr('id'); 
       var data = 'id=' + id ; 
       var parent = $(this).parent().parent(); 




         parent.fadeOut('slow', function() 
              {$(this).remove();}); 
        return false;  
      } 



     }); 

부분을 제거

jQuery를 부분 누군가가 웹상의 예제 페이지를보고 싶습니다.이 코드는 http://webiceberg.net/Prices.php이며, 코드에 대한 자세한 내용이 필요하면 페이지의 소스를 볼 수도 있습니다.

답변

1

당신은 단순히 당신이 행 삭제하면() calculateSum를 호출해야합니다 (물론 최대 코드 조금 정돈을!)가 $ (이) 후에 수행해야합니다

$('table#FeatureMatrix td a.delete').click(function() { 
    var id = $(this).parent().parent().attr('id'); 
    var data = 'id=' + id ; 
    var parent = $(this).parent().parent(); 

    parent.fadeOut('slow', function() { 
     $(this).remove(); 
     calculateSum(); 
    }); 

    return false;     
}); 

하는 것으로. 콜백 내에서 remove()를 사용하지 않으면 실제로 행을 제거하기 전에 calculate를 호출합니다.

당신이 직접 다음 다시 계산 한 후 사용자 지정 이벤트를 해고하고 수신하고 calculateSum를 호출에 대해 우려하는 경우 :

$('table#FeatureMatrix td a.delete').click(function() { 
    var id = $(this).parent().parent().attr('id'); 
    var data = 'id=' + id ; 
    var parent = $(this).parent().parent(); 

    parent.fadeOut('slow', function() { 
     $(this).remove(); 
     $.event.trigger("rowDeleted"); // fire custom event 
    }); 

    return false;     
}); 

을 그런 다음이 이벤트를 수신 : 다음을 시도

$('#sum').bind('rowDeleted', function() { // listen for custom event 
    calculateSum(); 
}); 
+0

calculateSum 함수는 여기에 표시되지 않습니다. 또한 관심사를 너무 잘 분리하지 않습니다 ... 다른 측정 항목을 계산해야하거나 행을 추가해야하는 경우 어떻게됩니까? –

+0

calculateSum은 저에게 글로벌 한 것처럼 보입니다. 우려를 분리해야하는 편집을 추가했습니다. –

+0

좋아, 그래서 내 코드에 그것을 펑하고 매력처럼 작동하고, 나를 위해 코드를 청소 해 주셔서 감사합니다, 당신은 나의 잠재 고객에게 오늘 이것을 보여 줘야했다, 내 하루 coz 만들었습니다. 덕분에 무리 – Gunnit

1

:

이렇게하면 각 t의 합계가 다시 계산됩니다. ime 테이블이 수정되었습니다 (행 추가에도 작동합니다)

+0

좋아, 나는 이것을 시도 뿐만 아니라 나는 문서 준비 기능을 닫기 직전에 추가했고 또한 매력, 감사 인사처럼 작동한다. – Gunnit

관련 문제