Mostrando entradas con la etiqueta jQuery. Mostrar todas las entradas
Mostrando entradas con la etiqueta jQuery. Mostrar todas las entradas

lunes, 21 de febrero de 2011

jQuery Mobile


jQuery esta evolucionando y ahora esta desarrollando ya en versión alpha un freamework para desarrollo de UI para Smartphones y Tablets.


Mas información en: http://jquerymobile.com


jQuery Mobile actualmente provee soporte a las siguientes plataformas móviles:
  • Apple® iOS: iPhone, iPod Touch, iPad (todas las versiones)
  • Android™: todos los equipos (todas las versiones)
  • Blackberry® Torch (versión 6)
  • Palm™ WebOS Pre, Pixi
  • Nokia® N900 (en progreso)
Mirá un poco los elementos de la UI que ya se proporcionan:


¿Genial no?

Estaré checando a detalle esto, para meterme de lleno.

miércoles, 15 de septiembre de 2010

jQuery - Agregando parámetros a links existentes

Hace poco me encontré ante un problema en un sitio que estaba trabajando, y era que había muchísimos links, los cuales necesitaban un parametro adicional para evitar el cache de la página.


Se que hay parametros del html para evitar esto, pero los coloque, pero seguía con el mismo problema. Así que me puse a pensar en otra solución.


Al saber que jQuery puede manipular cualquier parte del documento html, me puse a buscar un poco al respecto en la documentación de la librería.


Aquí el código: 


$(function(){          
       $('a[href]').each(function(i){
            var currHref = $(this).attr("href");
                       
                if (currHref.charAt(currHref.length - 1) === '?')                           
                    $(this).attr("href",currHref);
                else if (currHref.indexOf('?') > 0)                
                    $(this).attr("href",currHref+"&rand="+getRandom());
                else                  
                    $(this).attr("href",currHref+"?rand="+getRandom());
     });               
});
  



function getRandom(){
        var randomnumber = Math.floor(Math.random()*10000); 
        return randomnumber;
}

Ahora expliquemos que hace esto.

  • $('a[href]').each(function(i){...Codigo...});
Esta linea de código su función será buscar todos los elementos anchor dentro del documento, e iterar uno por uno. Durante esta iteración es donde se trabajara para agregarle lo que necesitamos.

  • var currHref = $(this).attr("href");
Ahora almacenaremos en una variable el contenido href de nuestro link.

  •  if (currHref.charAt(currHref.length - 1) === '?')
    $(this).attr("href",currHref);
Ahora buscaremos la posición en donde se encuentre el signo "?" si este nos da un valor -1, quiere decir que no tenemos este signo en nuestro link.


  • else if (currHref.indexOf('?') > 0)                
        $(this).attr("href",currHref+"&rand="+getRandom());
     else                  
        $(this).attr("href",currHref+"?rand="+getRandom());

Por último será agregar el parámetro que queremos agregar a todos nuestros links.


Pero que pasa si en los href utilizas javascript:tufuncion(); pues es un hecho que marcaria error el script, para corregir esto, tendríamos que agregar unas cuentas lineas más de código y quedaría solucionado.


Quedaría:



$(function(){                                      
       $('a[href]').each(function(i){
            var currHref = $(this).attr("href");
            var isAfunction = currHref.substring(0,10);              
            if(isAfunction == "javascript"){                
                $(this).attr("href",currHref);
            }else{
                if (currHref.charAt(currHref.length - 1) === '?')                           
                    $(this).attr("href",currHref);
                else if (currHref.indexOf('?') > 0)                
                    $(this).attr("href",currHref+"&randFert="+getRandom());
                else                  
                    $(this).attr("href",currHref+"?randFert="+getRandom());
            }
     });               
});

Lo que esta en negritas seria nuestro nuevo resultado. Solo buscamos la cadena javascript para evitar que concatene en ese anchor, nuestro nuevo parametro.



Encontré un link donde ya estaban trabajando en ese problema.


http://stackoverflow.com/questions/2667551/add-parameter-to-links-on-page-using-jquery


Probé el código que ahí estaban trabajando, pero no funciono.


Espero esto te sirva.

viernes, 23 de abril de 2010

Un poco de jQuery Begginers




jQuery es una librería realmente extraordinaria, que a muchos desarrolladores (incluyéndome) han hecho que la vida se vuelva más fácil. Y esto es porque cuanta con amplia lista de métodos que son los que más se reutilizan en sitios web.

Quiero compartir los métodos que me han ayudado a realizar mas rápido el desarrollo.


OBTENER EL VALOR DE ELEMENTO
 



Para eso utiliza el método val(). Cabe mencionar que este método funciona en elemento de tipo input.


Ejemplos:


var nombre = $("#elemento").val();  //Obtenemos el valor que contenga el elemento

$("#elemento").val("NUEVO");  //Modificamos el valor del elemento.


AGERGAR CONTENIDO HTML EN SPAN O DIVS



 
Para esto utilizamos el mtodo html();

Ejemplo: 
var newContent = "Duis arcu mus tortor ac, rhoncus pulvinar a nisi.";

$("#midiv").html(newContent);

El metodo text(), nos permite agregar texto al elemento.

Recuerda que los elementos que podemos manipular con contenido son los div y los spans.




ITERACION ELEMENTOS



Para esto utilizamos el metodo each().

Si has tenido que validar checkbox/radio y utilizado ciclo for para validarlos, este metodo te ayudara bastante.

var miVariable= "";
   $("#form1 input[name='tagNameElemento']:radio").each(function(i){
        if ($(this).is(':checked')) {
            
miVariable = $(this).val();
        }
    });  

Checa este post por si necesitas revisar mas a fondo la validación de radios.



MANEJO EVENTOS


Podemos asignar a nuestros elementos de nuestra pagina eventos para asi separar un poco la estructura del sitio con su funcionalidad.

Método bind().

$("#boton").bind("click",function(){
      //tus funciones
});

O podemos ocupar la manera abreviada


$("#boton").click(function(){
      //tus funciones
});

También podemos quitar el evento, para esto utilizamos ubind()

$("#boton").unbind("click",function(){
      //tus funciones
});

Si quieres ampliar más sobre los eventos checa aquí.
Es muy importante que si manejaras los eventos independiente de la estructura de tu site, los colores dentro de $(function(){ });


Ejemplo:


$(function(){
     $("#boton").click(function(){
         //tus funciones
    });
}); 
Con esto aseguramos que los eventos se cargarán al momento que la página este lista.


DISPARAR EVENTOS


Si necesitas disparar un evento, tambien jQuery cuenta con algo para ayudarnos, .trigger()

Con este método podremos ejecutar el evento sin realmente actuar sobre el o los elementos que lo contengan.

Ejemplo:

$(function(){
      $("#buton").click(function(){
             alert("HOLA MUNDO");
      });
      $("#boton").trigger("click");
});

Esto quiere decir que al momento de que la pagina este lista, me ejecutara lo que contenga el evento click de ese botón. Y me arrojara un alert con un HOLA MUNDO.

Espero te sirvan estos ejemplos que les comparto.

martes, 30 de marzo de 2010

Validar radios con jQuery

Cuando comence a desarrollar y me tome con validación de radios con javascript, en verdad la sufri, ya que me tope con varias incosistencias al realizar la validación.

Ya desde hace un buen rato jQuery me hizo la vida más facil, así que te comparto como poder validar estos elementos.

Veamos entonces validar un  conjunto de elementos radio.

   var miVariable= "";
   $("#form1 input[name='tagNameElemento']:radio").each(function(i){
        if ($(this).is(':checked')) {
           
miVariable = $(this).val();
        }
    });  


Ahora expliquemos que significa el codigo anterior.

  var miVariable= "";

Declaramos una variable, con el nombre que gustes, la cual servira como contenedora para validar si un radio del grupo de radios fue seleccionado.

$("#form1 input[name='tagNameElemento']:radio")

Para entender esta parte, deberias estar un poco mas indentificado con los tipos de selectores que maneja jQuery. Esa linea la interpretamos como:  "Selecciona los elementos inputs con el tagName (el que le indicamos) de tipo radio."
 
 .each(function(i){});


Ahora comenzamos con la parte mas importante que nos ayudara a iterar con los elementos radio que necesitamos validar. (Para mas información de each aqui)


Y por ultimo la validacón para que nuestra variable contenedora le asignemos un valor.

        if ($(this).is(':checked')) {
           
miVariable = $(this).val();
        }


Ya solo tendriamos que valida la longitud de nuestra variable miVariable.length != 0 para revisar que por lo menos se hizo la seleccion de un radio.

Solo recuerda que todo esto debe estar dentro de una funcion de javascript.

Ojala que te sirva esta breve explicación.