Tengo el hábito de iniciar la codificación jquery con la función lista $(function(){...});
y poner todas las funciones llamadas desde lista dentro de listo.
Luego me di cuenta de que algunas de las funciones puestas en la función de listo probablemente no tenían que estar allí.
Por ejemplo, las funciones simples usadas por los acontecimientos en el documento listo podrían ser declarados fuera de ella:
function checkEmail(objelement){
var emailRx = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/;
return emailRx.test(objelement.val()) ? true : false;
}
luego se usa dentro de ella:
//code snippet for example
$(function(){
$("form[name='contactform']").submit(function(){
$("input[type=text]").each(function(){
if($(this).attr("id") == "email" && !checkEmail($(this))) {
$(this).prev().css("color","red");
}
});
});
});
he buscado en muchas preguntas SO anteriores y parece que no puede encontrar una respuesta.
¿Es mejor, peor o no es lo mismo declarar las funciones fuera de listas de esta manera?
Todas las funciones declaradas en el encabezado de una página estarán disponibles cuando se desencadene el evento $ (document) .ready(). – BonyT
Lo más importante es que las funciones declaradas en cualquier lugar dentro de un alcance en javascript serán accesibles en el alcance completo (sí, podrías llamar a una función y declararla después) –
+1 para poner eso mejor que yo @VirtualBlackFox – BonyT