Actualmente estoy trabajando en una página web heredada que usa una tonelada de JavaScript, jQuery, cliente de Microsoft JavaScript y otras bibliotecas. La conclusión: no puedo reescribir toda la página desde cero ya que el negocio no puede justificarlo. Así que, es lo que es. De todos modos, necesito contaminar (realmente no lo intenté) el espacio de nombres global con una variable. Hay tres opciones en las que estaba pensando:
Simplemente almacénelo / recupérelo usando una declaración de JavaScript normal -
var x = 0;
Use jQuery para almacenar / recuperar el valor en una etiqueta DOM -
$("body").data("x", 0);
Use un campo de formulario oculto y configure / recupere el valor con jQuery -
$("whatever").data("x", 0);
¿Existe una forma mejor? Miré la pila de código existente y no creo que la variable pueda tener un alcance en una función.
fuente
Para mí, la mejor manera de manejar esta situación es definir un objeto en el objeto de la ventana:
window.my_config = { my_var1 : 1, my_var1 : 2, my_var1 : 3 };
Esto mantendría su endoscopio limpio y ordenado. Y cada vez que acceda al global usando
window.my_config
cualquiera que mire el código sabrá que se está accediendo a un global.fuente
Puede crear un hash en el ámbito global y usarlo como un espacio de nombres:
MyNamepace={} MyNamespace.newvar = 'value' // MyNamespace.newvar => 'value'
fuente
Solo compartiendo mi práctica con usted, haría un objeto global / var en el archivo JavaScript requerido con un prefijo sensible, como si estuviera trabajando en una página donde este objeto será un cuadro de texto, entonces lo nombraría:
g_TxtMyValue = 'value'; // g_ specifies it to be a global variable, it is one // of the many conventions used
Si tiene más de una variable global, también puede tener un espacio de nombres como:
my_txt = {}; // For a real site I would use a prefix relative to the project // name instead of "my". my_txt.testValueOne = 'Value one'; my_txt.testValueOne = 'Value two';
Estas variables estarán disponibles para usted en todo el sitio web, después de que se hayan inicializado.
Espero que esto ayude.
fuente
Utilice guión bajo
isEmpty()
._.isEmpty('')
volverátrue
.fuente
Solo un breve aviso:
¿El fancybox está haciendo AJAX (es decir: si se carga dentro de un iFrame, debe agregar "parent" al método de cierre), así:
fuente