sábado, 31 de agosto de 2019

JavaScript: el uso de this

Veamos un caso práctico donde usamos this para referirnos al botón sobre el que la función que se activa con el evento click se refiere al propio botón. Así evitamos volver a referirnos al propio botón ya que estamos en su contexto.


Cada vez que pulsamos sobre el botón cambia el color del texto según valores aleatorios de rgb entre 0 y 255 para cada color rojo, verde, azul.

HTML

 <!DOCTYPE html>  
 <html>  
  <head>  
   <meta charset="utf-8">  
   <meta name="viewport" content="width=device-width">  
   <title>This</title>  
   <script type="text/javascript" src="script.js"></script>  
   <link href="style.css" rel="stylesheet" type="text/css" />  
  </head>  
  <body>  
   <h1 id='mih1'>The Rainbow</h1>  
   <button id='miboton'>Colors</button>  
  </body>  
 </html>  

JavaScript

En este caso usamos código JavaScript puro sin usar jQuery.


En este caso this está haciendo referencia a la variable miboton.

La función rgb retorna un string. Si incluimos la siguiente línea podemos ver que nos da un string.

    console.log(typeof(rgb()));

 'use strict'  
 window.addEventListener('load',function(){  
  var mih1=document.querySelector("#mih1");  
  var miboton=document.querySelector("#miboton");  
  miboton.addEventListener('click',function(){  
   console.log("Evento click capturado");  
   this.style.border='2px solid red';  
   mih1.style.color=rgb();  
   function rgb(){  
    let r=Math.floor(Math.random()*256);  
    let g=Math.floor(Math.random()*256);  
    let b=Math.floor(Math.random()*256);  
    console.log("r=",r);  
    console.log("g=",g);  
    console.log("b=",b);  
    return "rgb("+r+","+g+","+b+")";  
   }  
  });  
 });  

CSS

 h1 {   
  display: block;  
  font-size: 4em;  
  font-weight: bold;  
 }  

No hay comentarios:

Publicar un comentario