<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Javascript y PHP: recursos y explicaciones - por IUGO &#187; Javascript</title>
	<atom:link href="http://www.iugo.com.uy/blog/index.php/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iugo.com.uy/blog</link>
	<description>PHP y JavaScript claro y sencillo, por IUGO software &#38; design studio</description>
	<lastBuildDate>Thu, 20 May 2010 13:13:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Autocompletar con jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/autocompletar-con-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/autocompletar-con-jquery/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 15:08:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Iugo]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=271</guid>
		<description><![CDATA[En este mini tutorial veremos como utilizar un excelente plugin de jQuery para implementar la funcionalidad de autocompletar (suggest). Nosotros lo hemos utilizado para taggear, sugiriendo al usuario los tags existentes en el sistema, pero hay muchas más aplicaciones: en buscadores, ingreso de datos, etc.

El plugin que utilizamos fue Autocomplete (que va a pasar a [...]]]></description>
			<content:encoded><![CDATA[<p>En este mini tutorial veremos como utilizar un excelente <strong>plugin de jQuery</strong> para implementar la funcionalidad de <strong>autocompletar </strong>(suggest). Nosotros lo hemos utilizado para taggear, sugiriendo al usuario los tags existentes en el sistema, pero hay muchas más aplicaciones: en buscadores, ingreso de datos, etc.<br />
<span id="more-271"></span><br />
El plugin que utilizamos fue <a title="jquery plugin autocomplete" href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/" target="_blank">Autocomplete</a> (que va a pasar a formar parte de <a href="http://bassistance.de/2009/04/22/contributing-to-jquery-ui-autocomplete/" target="_blank">jQuery UI</a>).   Este plugin convierte un input o área de texto en autocompletable, y puede obtener los datos remotamente utilizando AJAX o localmente desde un array. En caso de que los datos sean pocos, lo recomendable es utilizar un array local, pero si ya se está en el orden de los cientos, lo mejor será utilizar AJAX para obtener los datos buscando desde por ej. la base de datos.</p>
<p>Inicializamos el plugin:<br />
<code><br />
$().ready(function(){<br />
$("#tags").autocomplete('buscar_tags.php',<br />
{ multiple: true,<br />
autoFill: true,<br />
selectFirst: true,<br />
formatItem: formatItem,<br />
formatResult: formatResult } );<br />
});</code></p>
<p>function formatItem(row) {<br />
return row[0] + &#8221; (&#8221; + row[1] + &#8220;)&#8221;;<br />
}</p>
<p>function formatResult(row) {<br />
return row[0];<br />
}</p>
<p>En donde:  multiple = true permite ingresar más de un valor autocompletado,  <code>autoFill: </code>completa la palabara para poder seleccionarla presionando enter o tab,  selectFirst hace que la primera sugerencia sea seleccionada si no se presiona enter o tab o se selecciona algo utilizando el puntero, formatItem es una función que permite formatear como se muestra cada item mientras que formatResult es una función que permite formatear cómo se muestra una vez seleccionado un ítem.<br />
Otras posibilidades son:</p>
<ul>
<li>max: limitar la cantidad máxima de ítems</li>
<li>minChars: mínima cantidad de caracteres que debe escribir el usuario para que se active el autocompletar</li>
<li>etc</li>
</ul>
<p>Cuando implementemos el código de buscar_tags.php, obtendremos en el parmámetro q del querystring el valor ingresado por el usuario. Por ejemplo, si el usuario ingresa &#8220;foo&#8221; se generará un request de tipo:  buscar_tags.php?q=foo&amp;limit=10, donde limit tendrá el valor de la opción &#8220;max&#8221;.  EL script buscar_tags.php deberá retoranar el resultado un ítem por renglón. Para el ejemplo de <em>formatItem </em>anterior podría ser:<br />
<code><br />
foreach($resultados as $resultado) {<br />
echo $</code><code>resultado</code><code>[0], "|", $</code><code>resultado</code><code>[1], "\n";<br />
}<br />
</code></p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-9655719705705223";
/* Blog IUGO II */
google_ad_slot = "4068642316";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/autocompletar-con-jquery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Subir archivos con CakePHP y jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/subir-archivos-con-cakephp-y-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/subir-archivos-con-cakephp-y-jquery/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 01:49:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=256</guid>
		<description><![CDATA[En este turorial veremos como se puede implementar la carga de archivos utilizando CakePHP y jQuery.
1. CakePHP. Carga de archivos
Utilizando los consejos publicados en este post, implementaremos la lógica PHP para subir archivos al servidor. El siguiente método toma el nombre del directorio en el servidor al cual se quieren subir los archivos, el array [...]]]></description>
			<content:encoded><![CDATA[<p>En este turorial veremos como se puede implementar la carga de archivos utilizando CakePHP y jQuery.</p>
<p>1. <strong>CakePHP. Carga de archivos</strong><br />
Utilizando los consejos publicados en <a href="http://www.jamesfairhurst.co.uk/posts/view/uploading_files_and_images_with_cakephp">este post,</a> implementaremos la lógica PHP para subir archivos al servidor. El siguiente método toma el nombre del directorio en el servidor al cual se quieren subir los archivos, el array de archivos del formulario y un identificador opcional en caso que se desee crear un subdirectorio en donde guardar el archivo.<br />
<span id="more-256"></span></p>
<blockquote><p><code> </code></p>
<pre>/**
* uploads files to the server
* @params:
*		$folder 	= the folder to upload the files e.g. 'img/files'
*		$formdata 	= the array containing the form files
*		$itemId 	= id of the item (optional) will create a new sub folder
* @return:
*		will return an array with the success of each file upload
*/
function uploadFiles($folder, $formdata, $itemId = null) {
// setup dir names absolute and relative
$folder_url = WWW_ROOT.$folder;
$rel_url = $folder;

// create the folder if it does not exist
if(!is_dir($folder_url)) {
mkdir($folder_url);
}

// if itemId is set create an item folder
if($itemId) {
// set new absolute folder
$folder_url = WWW_ROOT.$folder.'/'.$itemId;
// set new relative folder
$rel_url = $folder.'/'.$itemId;
// create directory
if(!is_dir($folder_url)) {
mkdir($folder_url);
}
}

// list of permitted file types, this is only images but documents can be added
$permitted = array('image/gif','image/jpeg','image/pjpeg','image/png');

// loop through and deal with the files
foreach($formdata as $file) {
// replace spaces with underscores
$filename = str_replace(' ', '_', $file['name']);
// assume filetype is false
$typeOK = false;
// check filetype is ok
foreach($permitted as $type) {
if($type == $file['type']) {
$typeOK = true;
break;
}
}

// if file type ok upload the file
if($typeOK) {
// switch based on error code
switch($file['error']) {
case 0:
// check filename already exists
if(!file_exists($folder_url.'/'.$filename)) {
// create full filename
$full_url = $folder_url.'/'.$filename;
$url = $rel_url.'/'.$filename;
// upload the file
$success = move_uploaded_file($file['tmp_name'], $url);
} else {
// create unique filename and upload file
ini_set('date.timezone', 'Europe/London');
$now = date('Y-m-d-His');
$full_url = $folder_url.'/'.$now.$filename;
$url = $rel_url.'/'.$now.$filename;
$success = move_uploaded_file($file['tmp_name'], $url);
}
// if upload was successful
if($success) {
// save the url of the file
$result['urls'][] = $url;
} else {
$result['errors'][] = "Error uploaded $filename. Please try again.";
}
break;
case 3:
// an error occured
$result['errors'][] = "Error uploading $filename. Please try again.";
break;
default:
// an error occured
$result['errors'][] = "System error uploading $filename. Contact webmaster.";
break;
}
} elseif($file['error'] == 4) {
// no file was selected for upload
$result['nofiles'][] = "No file Selected";
} else {
// unacceptable file type
$result['errors'][] = "$filename cannot be uploaded. Acceptable file types: gif, jpg, png.";
}
}
return $result;
}</pre>
</blockquote>
<p>Dado que lo voy a usar en varios controllers, lo agregué al AppController. Un ejemplo de cómo usarlo sería el siguiente:</p>
<p>En la vista: &lt;?php echo $form-&gt;file(&#8216;File.image&#8217;); ?&gt;<br />
En el controller:</p>
<blockquote><p><code><br />
$fileOK = $this-&gt;uploadFiles('files', $this-&gt;data['File']);<br />
// si el archivo fue subido correctamente<br />
if(array_key_exists('urls', $fileOK)) {<br />
// guardar la url en la informacion del from<br />
$this-&gt;data['Post']['image_url'] = $fileOK['urls'][0];<br />
}<br />
</code></p></blockquote>
<p>2. <strong>jQuery</strong></p>
<p>Para el frontend, usamos el plugin AjaxUpload de jQuery, disponible <a href="http://valums.com/ajax-upload/" target="_self">aquí.</a> Les recomiendo que vean los ejemplos disponibles desde esa misma página. Una vez descargado, (requerden que también necesitan jQuery), lo guardamos en la carpeta app/webroot/js. Para poder utilizarlo, no olviden incluirlo en la vista: &lt;?php $this-&gt;addScript($javascript-&gt;link(&#8216;ajaxupload&#8217;)); ?&gt;</p>
<p>Un ejemplo de código javascript para inicializar AjaxUpload es el siguiente:</p>
<blockquote>
<pre>$(document).ready(function(){
 new AjaxUpload('#att_file', {
  action: 'controller/action',
  name: 'data[Attachment][path]',
  autoSubmit: true,
  onComplete : function(file, response){
    alert('Carga Filanizada');
  },
  onChange: function(){
  }
 });
});//document ready</pre>
</blockquote>
<p>Debemos setear el action para que apuente al controllador y acción correspondiente.</p>
<p>AjaxUpload permite utilizar cualquier elemento como botón para abrir el cuadro de dialogo de seleccionar archivos. Por ejemplo, podríamos usar un div:</p>
<blockquote>
<pre>&lt;div id='att_file'&gt;Cargar Archivos&lt;/div&gt;</pre>
</blockquote>
<p>AjaxUpload utiliza un iframe oculto para cargar el archivo, por lo que no es una técnica AJAX propiamente dicha, aunque logra una experiencia de uso similar.</p>
<p>Podríamos utlizar los eventos onChange y onComplete para mostrar un mensaje de Loading. Si es necesario adjuntar más datos para ser enviados por el formulario, se puede utilizar la propiedad data.</p>
<p>Con esto tenemos todos los elementos necesarios para tener carga de archivos AJAX utilizando CakePHP.<br />

<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-9655719705705223";
/* Blog IUGO II */
google_ad_slot = "4068642316";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/subir-archivos-con-cakephp-y-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Checkboxes y Radio Buttons elegantes con jQuery/CSS</title>
		<link>http://www.iugo.com.uy/blog/index.php/checkboxes-y-radio-buttons-elegantes-con-jquerycss/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/checkboxes-y-radio-buttons-elegantes-con-jquerycss/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 15:47:30 +0000</pubDate>
		<dc:creator>gonzalo</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[formularios]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=41</guid>
		<description><![CDATA[Los formularios forman parte de prácticamente todos los sitos y aplicaciones web de hoy en día.  Si bien con la ayuda de CSS simple podemos personalizarlos hasta cierto punto, siempre llega un momento en el que las queridas hojas de estilo ya no pueden ayudarnos, y debemos hecharle mano a nuestro adorado y salvador jQuery.







 
En [...]]]></description>
			<content:encoded><![CDATA[<p>Los formularios forman parte de prácticamente todos los sitos y aplicaciones web de hoy en día.  Si bien con la ayuda de CSS simple podemos personalizarlos hasta cierto punto, siempre llega un momento en el que las queridas hojas de estilo ya no pueden ayudarnos, y debemos hecharle mano a nuestro adorado y salvador jQuery.</p>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-9655719705705223";
/* Blog IUGO II */
google_ad_slot = "4068642316";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
 </p>
<div id="attachment_47" class="wp-caption alignleft" style="width: 419px"><a href="http://www.no-margin-for-errors.com/projects/prettyCheckboxes/"><img class="size-full wp-image-47" title="prettycheckboxes" src="http://www.iugo.com.uy/blog/wp-content/uploads/2009/02/prettycheckboxes.jpg" alt="Imágen del sitio web de prettyCheckboxes" width="409" height="205" /></a><p class="wp-caption-text">Imágen extraida del sitio web de prettyCheckboxes</p></div>
<p>En este post vamos a enfocarnos en los radio buttons y checkboxes, o &#8220;botones de opcion&#8221; y &#8220;casillas de verificación&#8221;&#8230; como nos guste llamarles.</p>
<p>He probado con varios plugins de jQuery, e incluso personalizarlos bastante, pero considero que <a href="http://www.no-margin-for-errors.com/projects/prettyCheckboxes/" target="_blank">prettyCheckboxes</a> es uno de los más sencillos de utilizar. Para incluirlo en tu diseño solo tienes que:</p>
<p>1.- Importar jQuery (por supuesto) y el archivo prettyCheckboxes.js que podrás descargar de <a href="http://www.no-margin-for-errors.com/projects/prettyCheckboxes/" target="_blank">este sitio</a> (allí encontraras ejemplos y una explicación mas detallada)</p>
<p>2.- Inicializar prettyCheckboxes (para todos los checkbox y radio buttons de la página):</p>
<pre><code>    $(document).ready(function(){
        $('input[type=checkbox],input[type=radio]').prettyCheckboxes();
    });</code></pre>
<p>O inicializarlo solo para algunos elementos de tus formularios:</p>
<pre><code>    $(document).ready(function(){
        $('input.myCheckbox').prettyCheckboxes();
    });</code></pre>
<p>Y eso es todo, ahora solo falta personalizar las imágenes (que descargas de la <a href="http://www.no-margin-for-errors.com/projects/prettyCheckboxes/" target="_blank">página de prettyCheckboxes</a> para que se vean según tu diseño.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/checkboxes-y-radio-buttons-elegantes-con-jquerycss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexiGrid para jQuery: grilla con todo el poder ajax</title>
		<link>http://www.iugo.com.uy/blog/index.php/flexigrid-para-jquery-grilla-con-todo-el-poder-ajax/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/flexigrid-para-jquery-grilla-con-todo-el-poder-ajax/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 23:50:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=32</guid>
		<description><![CDATA[Durante un tiempo usé Ext para desarrollo en Javascript, y una de sus grandes ventajas es la gran cantidad de componentes y widgets disponibles. Uno de los que usaba seguidamente era la grilla o grid, con posibilidad de paginado, ordenar columnas, etc.
jQuery también dispone de una muy buena grilla, llamada FlexiGrid. Brinda todo lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Durante un tiempo usé Ext para desarrollo en Javascript, y una de sus grandes ventajas es la gran cantidad de componentes y widgets disponibles. Uno de los que usaba seguidamente era la grilla o grid, con posibilidad de paginado, ordenar columnas, etc.</p>
<p>jQuery también dispone de una muy buena grilla, <span id="more-32"></span>llamada <a href="http://code.google.com/p/flexigrid/" target="_blank">FlexiGrid</a>. Brinda todo lo que esperamos: resize de columnas, ordernar cada columna, puede cargar los datos por ajax usando XML o JSON, paginado, buscador, etc. Admás tiene un diseño muy atractivo y es muy liviana, que es uno de sus objetivos principales y lo que lo diferencia de Ext Grid.<br />

<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-9655719705705223";
/* Blog IUGO II */
google_ad_slot = "4068642316";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/flexigrid-para-jquery-grilla-con-todo-el-poder-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Árboles con jQuery parte II</title>
		<link>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery-parte-ii/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery-parte-ii/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 21:30:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=29</guid>
		<description><![CDATA[Continuando con el post anterior sobre árboles con jQuery, quería comentarles sobre jstree. Éste es un componente jQuery para generar árobles, pudiendo generarlos &#8220;on the fly&#8221; a partir de listas HTML anidadas. Algunas de sus características son: carga asincrónica, borrar, crear y editar nodos, drag and drop, themes, etc, etc.
Pueden ver algunos demos en esta [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando con el post anterior sobre <a href="http://www.iugo.com.uy/blog/?p=23">árboles con jQuery</a>, quería comentarles sobre <a href="http://www.jstree.com/">jstree</a>. Éste es un componente jQuery para generar árobles, pudiendo generarlos &#8220;on the fly&#8221; a partir de listas HTML anidadas. Algunas de sus características son: carga asincrónica, borrar, crear y editar nodos, drag and drop, themes, etc, etc.</p>
<p>Pueden ver algunos demos en <a href="http://www.jstree.com/jsTree/examples/">esta dirección</a>.</p>
<p>Es algo más complejo <a href="http://jquery.bassistance.de/treeview/demo/" target="_blank">jQuery treeView</a>, pero también bastante más versátil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery-parte-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alternar colores de las filas de una tabla con jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/alternar-colores-de-las-filas-de-una-tabla-con-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/alternar-colores-de-las-filas-de-una-tabla-con-jquery/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 12:33:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=27</guid>
		<description><![CDATA[Éste es un ejemplo contundente de la elegancia y sencillez a la que se puede llegar al utilizar jQuery como framework de desarrollo para javascript. Con sólamente dos líneas de código podemos tener las filas de nuestras tablas pintadas alternadamente y además un efecto de rollover al pasar sobre cada fila. Esto es lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Éste es un ejemplo contundente de la elegancia y sencillez a la que se puede llegar al utilizar<strong> jQuery</strong> como framework de desarrollo para javascript. Con sólamente dos líneas de código podemos tener las filas de nuestras tablas pintadas alternadamente y además un efecto de rollover al pasar sobre cada fila. Esto es lo que se conoce como <strong>tabla Zebra o Zebra table</strong>.</p>
<p>El código jQuery a utilizar es el siguiente:</p>
<p><code><br />
$(".stripeMe tr").mouseover(function() {<br />
</code></p>
<blockquote><p><code>$(this).addClass("over");</code><br />
<code></code></p></blockquote>
<p><code> }).mouseout(function() {<br />
</code></p>
<blockquote><p><code>$(this).removeClass("over");</code><br />
<code></code></p></blockquote>
<p><code> });<br />
$(".stripeMe tr:even").addClass("alt");	</code></p>
<p>Las tablas a las que quieran agreagar el efecto deben tener la clase &#8220;stripMe&#8221;. Si quieren tener una fila encabezado de la tabla a la cual no se le aplique el efecto, deben utilizar <code>thead y tfoot </code>para el footer.</p>
<p>Los estilos a utilizar para pintar las filas son: <code>alt</code> y <code>over </code>. Como ven en el código, a las filas impares se le aplica el esitlo &#8220;alt&#8221; mientras que el estilo &#8220;over&#8221; es utilizado para destacar las filas cuando el mouse pasa sobre ellas.</p>
<p>Para leer más acerca de esta técnica, pueden visitar <a href="http://15daysofjquery.com/examples/zebra/" title="zebra striping made easy" target="_blank">este sitio</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/alternar-colores-de-las-filas-de-una-tabla-con-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arboles con jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 18:04:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=23</guid>
		<description><![CDATA[Hay varias alternativas para implementar árboles con jQuery. Una de las más sencillas que encontré es: jQuery treeView
Para crear el árbol, se arma la estructura utilizando listas html y luego se invoca a $(&#8220;#id_ul&#8221;).treeview(); y listo!
Ejemplo:

$(document).ready(function() {
$(&#8220;#arbol&#8221;).treeview();
});
&#60;ul id="arbol"&#62;
	&#60;li&#62;&#60;a href="?1"&#62;Item 1&#60;/a&#62;
		&#60;ul&#62;
			&#60;li&#62;&#60;a href="?1.0"&#62;Item 1.0&#60;/a&#62;
				&#60;ul&#62;
					&#60;li&#62;&#60;a href="?1.0.0"&#62;Item 1.0.0&#60;/a&#62;&#60;/li&#62;
				&#60;/ul&#62;
			&#60;/li&#62;
		&#60;/ul&#62;
	&#60;/li&#62;
	&#60;li&#62;&#60;a href="?2"&#62;Item 2&#60;/a&#62;
		&#60;ul&#62;
			&#60;li&#62;&#60;span&#62;Item 2.0&#60;/span&#62;
				&#60;ul&#62;
					&#60;li&#62;&#60;a href="?2.0.0"&#62;Item 2.0.0&#60;/a&#62;
						&#60;ul&#62;
							&#60;li&#62;&#60;a href="?2.0.0.0"&#62;Item 2.0.0.0&#60;/a&#62;&#60;/li&#62;
							&#60;li&#62;&#60;a href="?2.0.0.1"&#62;Item 2.0.0.1&#60;/a&#62;&#60;/li&#62;
						&#60;/ul&#62;
					&#60;/li&#62;
				&#60;/ul&#62;
			&#60;/li&#62;
		&#60;/ul&#62;
	&#60;/li&#62;
 &#60;/ul&#62;

Para más información: [...]]]></description>
			<content:encoded><![CDATA[<p>Hay varias alternativas para implementar árboles con jQuery. Una de las más sencillas que encontré es: <a href="http://jquery.bassistance.de/treeview/demo/" target="_blank">jQuery treeView</a></p>
<p>Para crear el árbol, se arma la estructura utilizando listas html y luego se invoca a $(&#8220;#id_ul&#8221;).treeview(); y listo!</p>
<p>Ejemplo:<br />
<span id="more-23"></span><br />
$(document).ready(function() {</p>
<blockquote><p>$(&#8220;#arbol&#8221;).treeview();</p></blockquote>
<p>});</p>
<pre id="line30">&lt;<span class="start-tag">ul</span><span class="attribute-name"> id</span>=<span class="attribute-value">"arbol"</span>&gt;
	&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?1"</span>&gt;Item 1&lt;/<span class="end-tag">a</span>&gt;
		&lt;<span class="start-tag">ul</span>&gt;
			&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?1.0"</span>&gt;Item 1.0&lt;/<span class="end-tag">a</span>&gt;</pre>
<pre id="line39">				&lt;<span class="start-tag">ul</span>&gt;
					&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?1.0.0"</span>&gt;Item 1.0.0&lt;/<span class="end-tag">a</span>&gt;&lt;/<span class="end-tag">li</span>&gt;
				&lt;/<span class="end-tag">ul</span>&gt;
			&lt;/<span class="end-tag">li</span>&gt;</pre>
<pre id="line67">		&lt;/<span class="end-tag">ul</span>&gt;
	&lt;/<span class="end-tag">li</span>&gt;
	&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?2"</span>&gt;Item 2&lt;/<span class="end-tag">a</span>&gt;
		&lt;<span class="start-tag">ul</span>&gt;
			&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">span</span>&gt;Item 2.0&lt;/<span class="end-tag">span</span>&gt;
				&lt;<span class="start-tag">ul</span>&gt;
					&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?2.0.0"</span>&gt;Item 2.0.0&lt;/<span class="end-tag">a</span>&gt;</pre>
<pre id="line74">						&lt;<span class="start-tag">ul</span>&gt;
							&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?2.0.0.0"</span>&gt;Item 2.0.0.0&lt;/<span class="end-tag">a</span>&gt;&lt;/<span class="end-tag">li</span>&gt;
							&lt;<span class="start-tag">li</span>&gt;&lt;<span class="start-tag">a</span><span class="attribute-name"> href</span>=<span class="attribute-value">"?2.0.0.1"</span>&gt;Item 2.0.0.1&lt;/<span class="end-tag">a</span>&gt;&lt;/<span class="end-tag">li</span>&gt;
						&lt;/<span class="end-tag">ul</span>&gt;
					&lt;/<span class="end-tag">li</span>&gt;
				&lt;/<span class="end-tag">ul</span>&gt;
			&lt;/<span class="end-tag">li</span>&gt;</pre>
<pre id="line74">		&lt;/<span class="end-tag">ul</span>&gt;</pre>
<pre id="line74">	&lt;/<span class="end-tag">li</span>&gt;</pre>
<pre id="line74"> &lt;/<span class="end-tag">ul</span>&gt;</pre>
<pre id="line74"></pre>
<pre id="line74">Para más información: <a href="http://bassistance.de/jquery-plugins/jquery-plugin-treeview/" target="_blank">jQuery treeView</a></pre>
<p>
<!-- Begin Google Adsense code -->
<script type="text/javascript"><!--
google_ad_client = "pub-9655719705705223";
/* Blog IUGO II */
google_ad_slot = "4068642316";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Google Adsense code -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/arboles-con-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Graficas con jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/graficas-con-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/graficas-con-jquery/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 02:37:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=21</guid>
		<description><![CDATA[Para uno de nuestros proyectos hemos utilizado para la generación de gráficas uno de los tantos plugins de jQuery: Flot. Como la mayoría de los plugins de jQuery, éste también es extremadamente sencillo de utilizar, y en pocos minutos podremos estar incorporando gráficas a nuestras aplicaciones. Por ejemplo:
    var d1 = [];
 [...]]]></description>
			<content:encoded><![CDATA[<p>Para uno de nuestros proyectos hemos utilizado para la generación de gráficas uno de los tantos plugins de jQuery: <a href="http://code.google.com/p/flot/">Flot</a>. Como la mayoría de los plugins de jQuery, éste también es extremadamente sencillo de utilizar, y en pocos minutos podremos estar incorporando gráficas a nuestras aplicaciones. Por ejemplo:</p>
<pre id="line10">    var d1 = [];
    for (var i = 0; i &lt; 14; i += 0.5)
        d1.push([i, Math.sin(i)]);</pre>
<pre id="line10">    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
    $.plot($("#placeholder"), [ d1, d2 ]);</pre>
<p>Le falta soportar gráficos de torta, pero podemos utilizar la modificación de Flot que se encuentra <a href="http://groups.google.com/group/flot-graphs/browse_thread/thread/9b1e73e4025b376c/b56101eb1375d1da?#b56101eb1375d1da">aquí.</a></p>
<p>Hasta la próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/graficas-con-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nuevo release de jQuery: 1.2.6</title>
		<link>http://www.iugo.com.uy/blog/index.php/nuevo-release-de-jquery-126/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/nuevo-release-de-jquery-126/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 11:57:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=20</guid>
		<description><![CDATA[El equipo de jQuery liberó la versión 1.2.6 de la excelente libreria jQuery. Las características principales de este release son:

mejor de performance: Event handling 103, CSS selectors: 13%, .offset: 21%, .css: 25%
Se agregó al core el plugin Dimensions

Si aún no han probado jQuery, les recomiendo que lo prueben. Pueden conseguirlo en aquí.
]]></description>
			<content:encoded><![CDATA[<p>El equipo de jQuery liberó la versión 1.2.6 de la excelente libreria jQuery. Las características principales de este release son:</p>
<ul>
<li>mejor de performance: Event handling 103, CSS selectors: 13%, .offset: 21%, .css: 25%</li>
<li>Se agregó al core el plugin Dimensions</li>
</ul>
<p>Si aún no han probado jQuery, les recomiendo que lo prueben. Pueden conseguirlo en <a href="http://jquery.com/">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/nuevo-release-de-jquery-126/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unobtrusive JavaScript with jQuery</title>
		<link>http://www.iugo.com.uy/blog/index.php/unobtrusive-javascript-with-jquery/</link>
		<comments>http://www.iugo.com.uy/blog/index.php/unobtrusive-javascript-with-jquery/#comments</comments>
		<pubDate>Wed, 07 May 2008 20:32:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.iugo.com.uy/blog/?p=10</guid>
		<description><![CDATA[jQuery es una excelente librería que permite trabajar con el DOM en forma muy elegante y con una mínima cantidad de líneas de código. Es muy liviana, crear plugins es pan comido, permite trabajar con XPath, selectores css y encadenar métodos. El código que se produce trabajando con jQuery es realmente precioso. A continuación les [...]]]></description>
			<content:encoded><![CDATA[<p>jQuery es una excelente librería que permite trabajar con el DOM en forma muy elegante y con una mínima cantidad de líneas de código. Es muy liviana, crear plugins es pan comido, permite trabajar con XPath, selectores css y encadenar métodos. El código que se produce trabajando con jQuery es realmente precioso. A continuación les dejo una presentación acerca de Unobtrusive JavaScript y en particular, aplicando jQuery.</p>
<div style="width:425px;text-align:left" id="__ss_390708"><object style="margin:0px" height="355" width="425"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=unobtrusivejquery-1210086958470711-9"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=unobtrusivejquery-1210086958470711-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/simon/unobtrusive-javascript-with-jquery" title="View this slideshow on SlideShare">View</a> | <a href="http://www.slideshare.net/upload">Upload your own</a></div>
</div>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMTI1NDk*OTIzMzcmcHQ9MTIxMjU*OTc4ODYzMyZwPTEwMTkxJmQ9Jm49Jmc9Mg==.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iugo.com.uy/blog/index.php/unobtrusive-javascript-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
