Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/06/2011, 10:57
Avatar de America|UNK
America|UNK
 
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Respuesta: Desarrolallar pequeña factura y detalles

Código javascript:
Ver original
  1. <style type="text/css">#factura td{cursor:pointer} .sel {background:#333;color:white} </style>
  2. <i>Click en el detalle para seleccionar</i>
  3. <table id="factura">
  4.     <tr><th>Detalle</th><th rel="precio">Precio</th></tr>
  5.     <tr><td>Item 1</td><td>200</td></tr>
  6.     <tr><td>Item 2</td><td>100</td></tr>
  7.     <tr><td>Item 3</td><td>180</td></tr>
  8.     <tr><th colspan="2">Total: <b id="total">0</b></th></tr>
  9. </table>
  10.  
  11. <script type="text/javascript">
  12. Object.prototype.hasClass = function(className) {   var pattern = new RegExp('(^|\\s)' + className + '(\\s|$)');   return pattern.test(this.className)}
  13. Object.prototype.addClass = function(className) {   if (!this.hasClass(className)) {  this.className += (' ' + className) }}
  14. Object.prototype.removeClass = function(className) {  var pattern = new RegExp('(^|\\s)' + className + '(\\s|$)');   this.className = this.className.replace(pattern, ' ');}
  15.  
  16. function inicio(idf,idt,relp){
  17.     var d = document, f = d.getElementById(idf), tr = f.getElementsByTagName('tr'), i;
  18.     var h = tr[0].getElementsByTagName('th'), x, index = 0;
  19.     for(x=0;x<h.length;x++){if(h[x].getAttribute("rel")==relp){index = x}}
  20.     for(i=1;i<tr.length-1;i++){
  21.         tr[i].onclick = function(){
  22.             var val = parseInt(this.getElementsByTagName('td')[index].innerHTML), t = d.getElementById(idt), ahora =  parseInt(t.innerHTML);
  23.             if(!this.hasClass('sel')){  this.addClass('sel');t.innerHTML =  ahora + val;}else{  this.removeClass('sel'); t.innerHTML =  ahora - val;}
  24.         }
  25.     }
  26. }
  27. inicio('factura','total','precio') //ID tabla factura, ID total, REL precio
  28. </script>

La función inicio crea eventos a los detalles para sumar al total si el detalle està seleccionado.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */