Foros del Web » Programando para Internet » Jquery »

Como puedo mejorar el siguiente codigo

Estas en el tema de Como puedo mejorar el siguiente codigo en el foro de Jquery en Foros del Web. Como puedo mejorar el siguiente codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ( ".promedio" ) . change ( function ( ) {   ...
  #1 (permalink)  
Antiguo 23/08/2016, 21:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Como puedo mejorar el siguiente codigo

Como puedo mejorar el siguiente codigo

Código Javascript:
Ver original
  1. $(".promedio").change(function(){
  2.           var elementos = new Array();
  3.           $.each($("input[class='promedio']:checked"), function() {
  4.                  var elemento = '#despr_'+this.id;
  5.    
  6.                  var valorInput = $(elemento).val();
  7.  
  8.                  if(valorInput != 0 && valorInput != ''){
  9.                    elementos.push($(elemento).val());
  10.                  }
  11.           });  
  12.  
  13.           var valorPromedio = promedio(elementos);
  14.          
  15.     });
  16.  
  17.      $(".despr").on("input", function() {
  18.           var elementos = new Array();
  19.           $.each($("input[class='promedio']:checked"), function() {
  20.              var elemento = '#despr_'+this.id;
  21.              
  22.              var valorInput = $(elemento).val();
  23.  
  24.  
  25.              if(valorInput != 0 && valorInput != ''){
  26.                 elementos.push($(elemento).val());
  27.              }
  28.           });  
  29.  
  30.              var valorPromedio = promedio(elementos);
  31.  
  32.     });
  33.  
  34.  
  35.  
  36.  
  37.  
  38. function promedio(elementos){
  39.       var total = 0;
  40.  
  41.       for(var i in elementos) { total += parseFloat(elementos[i]); }
  42.       var avg = total / elementos.length;
  43.  
  44.       if (avg !== avg) {
  45.           $('#pro_des_red').val(0);
  46.       }else{
  47.           $('#pro_des_red').val(avg);
  48.       };
  49.  
  50.   return avg;
  51. }
  #2 (permalink)  
Antiguo 24/08/2016, 18:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Como puedo mejorar el siguiente codigo

Puedes tener a la función anónima como una nombrada:
Código Javascript:
Ver original
  1. function listener(){
  2.     var elementos = new Array(); //También puede ser así: []
  3.     $.each($("input[class='promedio']:checked"), function(){
  4.         var elemento = '#despr_'+this.id,
  5.             valorInput = $(elemento).val(),
  6.             valorPromedio;
  7.        
  8.         if (valorInput != 0 && valorInput != ''){
  9.             elementos.push($(elemento).val());
  10.         }
  11.     });  
  12.  
  13.     valorPromedio = promedio(elementos);
  14. }

Y tan solo te referirías a ella por su nombre:
Código Javascript:
Ver original
  1. $(".promedio").on("change", listener);
  2. $(".despr").on("input", listener);

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: input, javascript, mejorar, siguiente, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:05.