2017-11-10 3 views
-2

Wahrscheinlich eine sehr einfache Frage. Ich habe 2 identische Jquerys, einer löst aus, wenn ein Feld aktualisiert wird, einer löst aus, wenn ein anderes aktualisiert wird. Kann ich die beiden kombinieren, so sagt es, wenn sich das ändert, oder das ändert sich Funktion?kombinieren 2 identische jquerys mit verschiedenen Triggern

$(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

versuchen mit '$ ("# ff_budget, #premium") Änderung (function() {})' –

+2

eine Klasse auf Elemente verwenden . Auch '$ (" # premium "). Je (function() {sum + = + $ (this) .val();});' dies wird nicht funktionieren, da ids eindeutig sein sollen, so dass der Selektor nur Holen Sie sich die erste – Pete

Antwort

1

In jQuery können Sie mehrere durch ein Komma getrennte Selektoren verwenden. Dies sollte für Sie funktionieren:

+0

Vielen Dank. so einfach ist das. . –

0

Natürlich können diese zusammengeführt werden. Ich sehe, dass der Code für beide Event-Listener identisch ist.

Sie können jQuery's multiple selector verwenden, um die gewünschten Ergebnisse zu erzielen.

$(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); 
    }); 
}); 
Verwandte Themen