JQuery, iniciándome en los frameworks

14 de Octubre de 2009 | Etiquetas: , , | Categoría: Javascript

Hace tiempo que trasteo código en Javascript pero siempre cosas básicas y puntuales: la validación de un formulario, ocultar y mostrar bloques, etc. Normalmente hago mas caso al CSS e incluso al PHP y al pobre JS lo tengo olvidado, pero desde que probé JQuery que le estoy cogiendo el truquillo a esto del Javascript.

JQuery es una librería (o framework, como queráis llamarlo) llena de funciones que nos harán la vida más fácil, ya que nos ahorran mucho código y encima son compatibles con todos los navegadores, un sueño hecho realidad, vamos.

Lo primero que tenemos que hacer para poder utilizar este framework es llamarlo, para eso podemos utilizar la Api de bibliotecas Ajax de Google así no hará falta que subamos la librería a nuestro servidor y podemos tener la tranquilidad de que siempre estará disponible.



Sobra decir que con el código anterior podemos cargar cualquier otra librería, e incluso indicar otra versión de ésta a utilizar.

La función principal de JQuery es la función dolar, que sería algo así como un atajo a la función document.getElementById(); pero mejorado, ya que podemos seleccionar elementos con múltiples opciones:

$('p'); //seleccionamos todos los párrafos
$('p.texto'); //seleccionamos solo los párrafos que tengan la clase .texto
$('div:hidden'); //seleccionamos todos los divs ocultos

Aquí podéis ver una lista completa de los selectores que podemos utilizar, tenéis que echarle un vistazo a la documentación de la página oficial, aunque está en inglés nos puede servir de mucha ayuda.

Y bueno, para no alargarme mucho más con este artículo os voy a dejar un ejemplo práctico para que comprobéis lo fácil que resulta trabajar con jquery:

//al cargar el html oculto el elemento con id="submenu"
$(document).ready( function(){
   $("#submenu").hide();
});

//creo una función que muestre #submenu cuando pase el ratón por encima de #menu
//y vuelva a ocultar #submenu cuando salga del área de #menu
$(function(){
	$('#menu').hover(function(){
		$("#submenu").show();
	}, function(){
		$("#submenu").hide();
	});
});

Y listo, con esto ya tendríamos la base para un menú desplegable por ejemplo ¿A que es fácil? :P

Twittea esto Guardalo en Delicious Compartelo en Facebook

¿Quién dijo vacaciones? xD

5 de Agosto de 2009 | Etiquetas: , , , , | Categoría: Personal

Cuando le coges el gusto a algo ya no puedes parar.. ¿No os ha pasado? A mi muchas veces, y ahora lo estoy notando más. Llevo unos días de vacaciones y no paro de pensar en proyectos para realizar, en diseños para themes, en artículos para el blog, etc.

Cómo me estaba angustiando de pensar que no podría programar hasta que no volviera a Alicante (y para eso faltan aún casi 2 semanas) me he pasado por una tienda y he salido con 2 libros debajo del brazo: Ajax, Javascript y PHP (nivel medio) y PHP y MySQL (nivel avanzado) ambos de ANAYA.

¿Los habéis leido? ¿Alguna recomendación?

Y lo más importante ¿Pensáis que estoy enferma, o le ha pasado a alguien más? Esto de estar de vacaciones y pensando en trabajo.. ¿Será muy grave? xD

Twittea esto Guardalo en Delicious Compartelo en Facebook

Ajax: Aprendiendo a cargar contenido en un div

27 de Julio de 2009 | Etiquetas: , , | Categoría: ajax

Ya es hora de que vaya empezando a escribir un poco sobre ajax, hace tiempo que vengo utilizando esta tecnología pero voy tirando de librerías o de ejemplos realizados por terceros y aún no me había puesto a analizarlo detalladamente.

Como siempre, lo primero es un poco de teoría:

Ajax, mas que una tecnología en sí es un conjunto de tecnologías (XHTML, CSS, DOM, XML, XSLT, JSON, XMLHttpRequest) unidas con Javascript. Utilizando Ajax conseguiremos mejorar considerablemente la interacción del usuario con la aplicación (web), ya que la página no necesitará ser recargada, actuará en segundo plano, por lo que el usuario siempre tendrá información en la pantalla.

Y que mejor que empezar entendiendo de lo que hablamos, que con un ejemplo, cargar contenido en un div con ajax:

Para ello he creado 2 funciones, la primera crea un objeto según el navegador y realiza una petición HTTP al servidor web, al realizar la petición devuelve un estado, pues cuando este estado cambie se ejecutará otra función:


function Carga(url,id)
{
//Creamos un objeto dependiendo del navegador
var objeto;
if (window.XMLHttpRequest)
{
//Mozilla, Safari, etc
objeto = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//Nuestro querido IE
try {
objeto = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try { //Version mas antigua
objeto = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!objeto)
{
alert("No ha sido posible crear un objeto de XMLHttpRequest");
}
//Cuando XMLHttpRequest cambie de estado, ejecutamos esta funcion
objeto.onreadystatechange=function()
{
cargarobjeto(objeto,id)
}
objeto.open('GET', url, true) // indicamos con el método open la url a cargar de manera asíncrona
objeto.send(null) // Enviamos los datos con el metodo send
}

Y la función a la que llamamos localiza el estado recibido y según la respuesta, cargamos el contenido en el div o mostramos un gif animado simulando una precarga, también podemos poner en texto “Cargando…” o cualquier otro mensaje que queramos.

function cargarobjeto(objeto, id)
{
if (objeto.readyState == 4) //si se ha cargado completamente
document.getElementById(id).innerHTML=objeto.responseText
else //en caso contrario, mostramos un gif simulando una precarga
document.getElementById(id).innerHTML='cargando'
}

Una vez tenemos las funciones creadas, solo nos falta llamarlas, podemos hacerlo por ejemplo a través de un enlace:

Cargar contenido

Recordando que el primer parámetro es la URL que queremos cargar y el segundo es la ID del div en el que la cargaremos.

Por si no os ha quedado muy claro (que me temo que es lo más probable dado como me explico xD) aquí os dejo un ejemplo online :P

Twittea esto Guardalo en Delicious Compartelo en Facebook

1 pages