Declarar una variable global en Jquery

publicado por: Anonymous

¿Cómo puedo declarar una variable Jquery de manera global?

He buscado la manera de declarar una variable de manera global, en el que pueda acceder al valor de un <input> ya que el problema está, en que la variable es utilizada en por lo menos en otras 20 funciones diferentes. Usualmente declaro las funciones de la siguiente forma:

function Funcion1(){
    var valor1 = $('#objeto1').val();
    var valor2 = $('#objeto2').val();
    var valor3 = $('#objeto3').val();
    
    Generar(valor1,valor2,valor3);
}

/*
* mismos objetos utilizados que en Funcion1
*/
function Funcion2(){
    var valor0 = "objeto";
    var valor1 = $('#objeto1').val();
    var valor2 = $('#objeto2').val();
    var valor3 = $('#objeto3').val();
    
    Otro(valor0,valor1,valor2,valor3);
}

... (n funciones)

¿Cuál es la forma correcta de declarar de manera global un var dato = $('#dato').val(); ?

Aquí muestro un ejemplo de cómo es mi idea:

_x000D_

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  Tu nombre:<br>
  <input id="dato" type="text">
  <button id="boton">ok</button>
<script>
    var saludo = 'Hola ';
    var dato = $('#dato').val();  //¿Cuál es la mejor manera?
    
    $('#boton').click(function(){
      alert(saludo + 'rn' + dato); //no obtiene el dato de manera global
    });
</script>

_x000D_

_x000D_

_x000D_

solución

En el código que tienes de prueba está bien, pero en ningún momento le dices a la variable que debe tomar el valor que introduces en el input cada vez que lo cambies. Así que te dejo este ejemplo y espero te sirva:

_x000D_

_x000D_

$(document).ready(function() {_x000D_
    var saludo = 'Hola ';_x000D_
    var dato;_x000D_
    $("#dato").on("blur", function(){_x000D_
    dato = $(this).val();_x000D_
    });_x000D_
    $('#boton').click(function(){_x000D_
      alert(saludo + ' ' + dato);_x000D_
    });_x000D_
});

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>_x000D_
  Tu nombre:<br>_x000D_
  <input id="dato" type="text">_x000D_
  <button id="boton">ok</button>

_x000D_

_x000D_

_x000D_


Lo que hace la función .blur() es detectar el momento en que se desenfoca un elemento, en este caso cuando se escribe en el input y luego se aprieta el botón, al apretar el botón se pierde el foco del input y se activa la función.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *