2017-11-10 7 views
-2

아마 아주 간단한 질문입니다. 두 개의 동일한 jquerys, 하나의 필드가 업데이트 될 때 하나의 트리거, 다른 업데이트가 발생할 때 하나의 트리거가 있습니다. 이 두 가지를 결합하여이 변경 사항이 있는지 또는 변경 사항이 기능을 수행하는지 나타낼 수 있습니까?다른 트리거를 가진 2 개의 동일한 jquerys를 결합하십시오

$(document).ready(function(){ 


    $("#premium").change(function(){ 
      var sum = 0; 
      $("#premium").each(function(){ 
       sum += +$(this).val(); 
      }); 
      var ff_budget = $("#ff_budget").val(); 
      var premium_difference = ff_budget-sum; 
      $("#total_premium").html("£ "+sum); 
      $("#premium_difference").html("£ "+premium_difference); 
     }); 

    $("#ff_budget").change(function() { 
      var sum = 0; 
      $("#premium").each(function(){ 
       sum += +$(this).val(); 
      }); 
      var ff_budget = $("#ff_budget").val(); 
      var premium_difference = ff_budget-sum; 
      $("#total_premium").html("£ "+sum); 
      $("#premium_difference").html("£ "+premium_difference); 
     }); 

}); 
+3

$ ("#의 ff_budget, #premium")'와 시도의 변화 (함수() {})' –

+2

클래스를 당신의 요소에 사용 . 또한, 식별자가 유일하기 때문에 식별자가 유일하기 때문에 이것은 작동하지 않을 것입니다 (즉, $ ("# 프리미엄"). 먼저 – Pete

답변

1

jQuery에서 여러 선택기를 쉼표로 구분하여 사용할 수 있습니다. 이것은 당신을 위해 작동해야합니다 :

$(document).ready(function(){ 
    $("#premium, #ff_budget").change(function(){ 
     var sum = 0; 
     $("#premium").each(function(){ 
      sum += +$(this).val(); 
     }); 
     var ff_budget = $("#ff_budget").val(); 
     var premium_difference = ff_budget-sum; 
     $("#total_premium").html("£ "+sum); 
     $("#premium_difference").html("£ "+premium_difference); 
    }); 

}); 
+0

고마워. 그만큼 간단합니다. . –

0

물론이 병합 할 수 있습니다. 두 이벤트 리스너 모두에 대해 코드가 동일하다는 것을 알았습니다.

당신이 원하는 결과를 달성하기 위해 jQuery's multiple selector를 사용할 수 있습니다.

$(document).ready(function(){ 

    $("#premium, #ff_budget").change(function(){ 
     var sum = 0; 
     $("#premium").each(function(){ 
      sum += +$(this).val(); 
     }); 
     var ff_budget = $("#ff_budget").val(); 
     var premium_difference = ff_budget-sum; 
     $("#total_premium").html("£ "+sum); 
     $("#premium_difference").html("£ "+premium_difference); 
    }); 
});