<?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>HectorBenitez.com [Blog] &#187; Javascript</title> <atom:link href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/javascript/feed/" rel="self" type="application/rss+xml" /><link>http://blog.hectorbenitez.com</link> <description>Desarrollo de sistemas o algo por el estilo...</description> <lastBuildDate>Sun, 11 Dec 2011 22:25:49 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>JQuery: Manejadores de eventos y callbacks en OOP</title><link>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/</link> <comments>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/#comments</comments> <pubDate>Sun, 26 Dec 2010 14:00:03 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Javascript]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[JQuery]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=1758</guid> <description><![CDATA[Dos cosas basicas al momento de programar con JQuery son el usar diversos manejadores de eventos (event handler) y llamar funciones en repuesta a algo, los llamados callback, muchos son los usos que tenemos para estas 2 cosas, desde controlar clicks hasta realizar acciones en respuesta a un llamado ajax, esto es algo muy comun [...]]]></description> <content:encoded><![CDATA[<p>Dos cosas basicas al momento de programar con <a href="http://jquery.com/" target="_blank">JQuery</a> son el usar diversos manejadores de eventos (<em>event handler</em>) y llamar funciones en repuesta a algo, los llamados callback, muchos son los usos que tenemos para estas 2 cosas, desde controlar clicks hasta realizar acciones en respuesta a un llamado <a title="ajax" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/ajax/">ajax</a>, esto es algo muy comun en <a title="JQuery" href="http://blog.hectorbenitez.com/tag/jquery/">JQuery</a>, sin embargo, cuando estamos programando con objetos, debemos tener en cuenta como funciona el contexto dentro de JQuery.</p><p>Por ejemplo aqui tenemos un manejador de eventos muy simple:</p><pre class="brush:js"><a title="google" href="http://blog.hectorbenitez.com/tag/google/">google</a>.load("jquery", "1");

function OnLoad(){
$('#content').html('Click aqui');
$('#content').click(function() {
alert('Manejador del evento .click()');
});
}

google.setOnLoadCallback(OnLoad);
</pre><p>Muy bien, este ejemplo fue muy sencillo y funciona en caso de que queramos usar funciones para manejar eventos, ahora, si en lugar de funciones quisieramos usar metodos de un objeto, probablemente intentariamos usar algo como esto:</p><pre class="brush:js">google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click(c.hi);
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);
</pre><p>Desafortunadamente este codigo no dara el resultado esperado, simplemente al dar click arrojara un alert que dice &#8220;undefined&#8221; y no el valor &#8220;Hola&#8221; que esperabamos, esto sucede debido a que el manejador de evento esta ligado al metodo de la clase en si y no al metodo de la instancia que creamos para este proposito, es decir, al activar el manejador del evento, el contexto ya no es el esperado&#8230;</p><p>Afortunadamente JQuery 1.4 ya tiene una solucion para este problema y es el uso de la <a href="http://api.jquery.com/jQuery.proxy/" target="_blank">funcion jQuery.proxy (ó $.proxy)</a> la cual nos permite corregir esta perdida de contexto, uno de los usos de esta funcion consiste en enviar en el primer parametro el metodo que queremos disparar y en el segundo el objeto que sera utilisado como &#8220;this&#8221; cuando el metodo manejador sea disparado.</p><p>Este ejemplo debe funcionar correctamente:</p><pre class="brush:js">google.load("jquery", "1");

function OnLoad(){
$('#content').html('Hola mundo');
c = new Class1();
$('#content').click($.proxy(c.hi, c));
}

Class1 = function(){
this.text = "Hola";
this.hi = function() {
alert(this.text);
};
}

google.setOnLoadCallback(OnLoad);
</pre><p>Esto funciona tanto para manejadores de eventos, como para callbacks, los ejemplos que tenemos aqui pueden ser probados en<a href="http://code.google.com/apis/ajax/playground/#jquery" target="_blank"> Google Code Playground</a>, espero sea de ayuda&#8230; saludos</p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2010/12/jquery-manejadores-de-eventos-y-callbacks-en-oop/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>EffectGames, plataforma Javascript para crear juegos</title><link>http://blog.hectorbenitez.com/2009/12/effectgames-plataforma-javascript-para-crear-juegos/</link> <comments>http://blog.hectorbenitez.com/2009/12/effectgames-plataforma-javascript-para-crear-juegos/#comments</comments> <pubDate>Sun, 20 Dec 2009 01:17:04 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Javascript]]></category> <category><![CDATA[Videojuego]]></category> <category><![CDATA[juegos]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=607</guid> <description><![CDATA[No queda duda de que Flash aun tiene su mercado, aunque ha ido bajando, y es cada vez más común ver sitios que sustituyen elementos Flash por Javascript, actualmente uno de los mercados que aun le pertenece a Flash es sin duda el de los juegos online, pocos juegos como Travian o Mafia Wars han [...]]]></description> <content:encoded><![CDATA[<p>No queda duda de que Flash aun tiene su mercado, aunque ha ido bajando, y es cada vez más común ver sitios que sustituyen elementos Flash por <a title="Javascript" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/javascript/">Javascript</a>, actualmente uno de los mercados que aun le pertenece a Flash es sin duda el de los <a title="juegos" href="http://blog.hectorbenitez.com/tag/juegos/">juegos</a> online, pocos juegos como Travian o Mafia Wars han logrado mantenerse en la red, sin embargo con la llegada de HTML5 y CSS3 además de proyectos como WebGL hacen que cada día <a title="Javascript" href="http://blog.hectorbenitez.com/tag/javascript/">Javascript</a> esté más cerca de quitarle este reinado a Flash.</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2009/12/effectgames.png"><img class="aligncenter size-full wp-image-608" title="effectgames" src="http://blog.hectorbenitez.com/wp-content/uploads/2009/12/effectgames.png" alt="" width="500" height="217" /></a></p><p>Un ejemplo de esto es <a href="http://www.effectgames.com/" target="_blank">EffectGames</a>, una plataforma Javascript para crear juegos en línea, el resultado es muy interesante, juegos muy fluidos y con muy buen aspecto grafico, no cabe duda que aun falta desarrollo pero son grandes los avances que se están logrando, valdrá la pena seguir proyectos como este.</p><p>Via: <a href="http://www.genbeta.com/multimedia/effectgames-plataforma-para-crear-juegos-usando-javascript-y-html5" target="_blank">GenBeta</a></p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/12/effectgames-plataforma-javascript-para-crear-juegos/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Cross domain AJAX usando CSS</title><link>http://blog.hectorbenitez.com/2009/11/cross-domain-ajax-usando-css/</link> <comments>http://blog.hectorbenitez.com/2009/11/cross-domain-ajax-usando-css/#comments</comments> <pubDate>Sat, 14 Nov 2009 17:33:43 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Ajax]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[Desarrollo/Programación]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Cross domain]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[Ruby]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=551</guid> <description><![CDATA[Una de las tecnicas mas importantes dentro del desarrollo web es AJAX, esta tecnica de programación es muy poderosa, sin embargo tiene ciertas restricciones por seguridad, la mas importante de ellas es la llamada &#8220;same-origin policy&#8221; la cual no permite generar llamados hacia otros dominios (Cross domain)&#8230; Ahora me he encontrado con una libreria muy [...]]]></description> <content:encoded><![CDATA[<p>Una de las tecnicas mas importantes dentro del <a title="desarrollo web" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/">desarrollo web</a> es <a title="AJAX" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/ajax/">AJAX</a>, esta tecnica de <a title="programación" href="http://blog.hectorbenitez.com/tag/programacion/">programación</a> es muy poderosa, sin embargo tiene ciertas restricciones por <a title="seguridad" href="http://blog.hectorbenitez.com/category/computacion/seguridad/">seguridad</a>, la mas importante de ellas es la llamada &#8220;same-origin policy&#8221; la cual no permite generar llamados hacia otros dominios (<a title="Cross domain" href="http://blog.hectorbenitez.com/tag/cross-domain/">Cross domain</a>)&#8230;</p><p>Ahora me he encontrado con una libreria muy interesante la cual nos permite realizar llamados <a title="AJAX" href="http://blog.hectorbenitez.com/tag/ajax/">AJAX</a> cross domain, pero usando CSS (Ellos lo llaman AJACSS), la razon de esto es que la politca &#8220;same-origin&#8221; solo afecta los llamados hechos con el XmlHttpRequest, por esta razon ellos nos presentan CSSHttpRequest.</p><p>Tiene como limitante el que solo se pueden realizar llamados tipo GET y que la respuesta vendra codificada dentro de CSS, sin embargo ellos ya nos brindan librerias para codificar en <a title="Python" href="http://blog.hectorbenitez.com/tag/python/">Python</a>, <a title="Ruby" href="http://blog.hectorbenitez.com/tag/ruby/">Ruby</a> y PHP y para descodificar en <a title="Javascript" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/javascript/">Javascript</a>, aqui les dejo un ejemplo de como seria el uso y en la pagina de los autores pueden encontrar un ejemplos, saludos&#8230;</p><pre class="brush: js">
CSSHttpRequest.get(
        "http://www.nb.io/hacks/csshttprequest/hello-world/",
        function(response) { alert(response); }
    );
</pre><p>Respuesta:</p><pre class="brush: css">
#c0 { background: url(data:,Hola%20Mundo!); }
#c1 { background: url(data:,Este%20seria%20un%20ejemplo); }
</pre><p><a href="http://nb.io/hacks/csshttprequest" target="_blank">Sitio oficial&#8230;</a></p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/11/cross-domain-ajax-usando-css/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Sexy Lightbox: El Lightbox más sexy de la web</title><link>http://blog.hectorbenitez.com/2009/10/sexy-lightbox-el-lightbox-mas-sexy-de-la-web/</link> <comments>http://blog.hectorbenitez.com/2009/10/sexy-lightbox-el-lightbox-mas-sexy-de-la-web/#comments</comments> <pubDate>Tue, 20 Oct 2009 14:00:39 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Desarrollo web]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[JQuery]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Web]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=518</guid> <description><![CDATA[En esta ocación les traigo el Lightbox más sexy de la web, o al menos eso dicen en su pagina oficial, y la verdad aunque existen mucho scripts tipo lightbox este trae un estilo bastante fresco y ademas lo he venido siguiendo por algun tiempo y se nota que esta en desarrollo constante, cosa que [...]]]></description> <content:encoded><![CDATA[<p>En esta ocación les traigo el Lightbox más sexy de la web, o al menos eso dicen en su pagina oficial, y la verdad aunque existen mucho scripts tipo lightbox este trae un estilo bastante fresco y ademas lo he venido siguiendo por algun tiempo y se nota que esta en desarrollo constante, cosa que es muy importante y habla muy bien del proyecto y de sus creadores.</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2009/10/15-10-2009-05-39-35-p_m_.png"><img class="aligncenter size-full wp-image-519" title="15-10-2009-05-39-35-p_m_" src="http://blog.hectorbenitez.com/wp-content/uploads/2009/10/15-10-2009-05-39-35-p_m_.png" alt="15-10-2009-05-39-35-p_m_" width="530" height="218" /></a></p><p>Por supuesto es libre y acepta <a title="varios" href="http://blog.hectorbenitez.com/category/varios/">varios</a> tipos de contenido, <a title="imagenes" href="http://blog.hectorbenitez.com/tag/imagenes/">imagenes</a>, videos, html&#8230;</p><p>Todos los flash que tengas en tu sitio deben tener la propiedad wmode en transparent u opaque para que el lightbox se muestre correctamente.</p><p>Ahora puedes usar SexyLightbox en español de la siguiente manera:</p><pre class="brush: js">SexyLightbox = new SexyLightBox({color:'negro'});</pre><p>Por cierto, cuentan con otros componentes bastante buenos tambien, asi como Sexy Tooltip o Sexy Forms, tambien podrian echarles un ojo&#8230;</p><p><a href="http://www.coders.me/web-html-js-css/javascript/sexy-lightbox-2" target="_blank">Sitio oficial</a></p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/10/sexy-lightbox-el-lightbox-mas-sexy-de-la-web/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>jCart: Comercio electrónico en Ajax, PHP y jQuery</title><link>http://blog.hectorbenitez.com/2009/08/jcart-comercio-electronico-en-ajax-php-y-jquery/</link> <comments>http://blog.hectorbenitez.com/2009/08/jcart-comercio-electronico-en-ajax-php-y-jquery/#comments</comments> <pubDate>Mon, 31 Aug 2009 02:47:41 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Desarrollo web]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[JQuery]]></category> <category><![CDATA[Programación]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=456</guid> <description><![CDATA[jCart es un pequeño script e-commerce hecho con PHP y jQuery. Nos brinda la funcionalidad básica de una tienda en línea incluyendo el carrito de compras, utiliza jQuery para darle una funcionalidad más dinámica por medio de Ajax aunque es completamente funcional con javascript deshabilitado. Muy sencillo de adaptar a tu sitio, un recurso bastante [...]]]></description> <content:encoded><![CDATA[<p>jCart es un pequeño script e-commerce hecho con PHP y <a title="jQuery" href="http://blog.hectorbenitez.com/tag/jquery/">jQuery</a>.</p><p>Nos brinda la funcionalidad básica de una tienda en línea incluyendo el carrito de compras, utiliza jQuery para darle una funcionalidad más dinámica por medio de <a title="Ajax" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/ajax/">Ajax</a> aunque es completamente funcional con <a title="javascript" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/javascript/">javascript</a> deshabilitado.</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2009/08/free-php-ajax-shop-cart1.gif"><img class="aligncenter size-full wp-image-458" title="free-php-ajax-shop-cart" src="http://blog.hectorbenitez.com/wp-content/uploads/2009/08/free-php-ajax-shop-cart1.gif" alt="free-php-ajax-shop-cart" width="480" height="109" /></a></p><p>Muy sencillo de adaptar a tu sitio, un recurso bastante útil&#8230;</p><p><a href="http://conceptlogic.com/jcart/" target="_blank">Sitio oficial&#8230;</a></p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/08/jcart-comercio-electronico-en-ajax-php-y-jquery/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Gritter: Notificaciones con JQuery estilo Growl</title><link>http://blog.hectorbenitez.com/2009/07/gritter-notificaciones-con-jquery-estilo-growl/</link> <comments>http://blog.hectorbenitez.com/2009/07/gritter-notificaciones-con-jquery-estilo-growl/#comments</comments> <pubDate>Sun, 26 Jul 2009 23:39:31 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[Javascript]]></category> <category><![CDATA[JQuery]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=429</guid> <description><![CDATA[Gritter es un plugin de jQuery para crear notificaciones estilo Growl con facilidad, estas notificaciones pueden ser estilizadas con facilidad, es posible crear multiples notificaciones cada una de ellas con ID unico y un comportamiento independiente, puedes elegir si quieres que desaparescan las notificaciones tras unos segundos o hasta que el usuario las cierre manualmente,muy [...]]]></description> <content:encoded><![CDATA[<p>Gritter es un plugin de <a title="jQuery" href="http://blog.hectorbenitez.com/tag/jquery/">jQuery</a> para crear notificaciones estilo Growl con facilidad, estas notificaciones pueden ser estilizadas con facilidad, es posible crear multiples notificaciones cada una de ellas con ID unico y un comportamiento independiente, puedes elegir si quieres que desaparescan las notificaciones tras unos segundos o hasta que el usuario las cierre manualmente,muy buen plugin para tenerlo en la mente&#8230;</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2009/07/jquery-growl-notifications.jpg"><img class="aligncenter size-full wp-image-430" title="jquery-growl-notifications" src="http://blog.hectorbenitez.com/wp-content/uploads/2009/07/jquery-growl-notifications.jpg" alt="jquery-growl-notifications" width="480" height="149" /></a></p><p><a href="http://boedesign.com/2009/07/11/growl-for-jquery-gritter/" target="_blank">Sitio oficial&#8230;</a></p>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/07/gritter-notificaciones-con-jquery-estilo-growl/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Hagamos mas rapida a la web</title><link>http://blog.hectorbenitez.com/2009/06/hagamos-mas-rapida-a-la-web/</link> <comments>http://blog.hectorbenitez.com/2009/06/hagamos-mas-rapida-a-la-web/#comments</comments> <pubDate>Sat, 27 Jun 2009 23:23:29 +0000</pubDate> <dc:creator>Hector Benitez</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[Desarrollo web]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Programación]]></category> <category><![CDATA[Web]]></category><guid isPermaLink="false">http://blog.hectorbenitez.com/?p=393</guid> <description><![CDATA[Recientemente Google presento una serie de tutoriales y articulos en los cuales nos presentan diferentes sugerencias para mejorar la velocidad de nuestras aplicaciones web, se tratan temas como CSS, PHP, Javascript y optimización de imagenes entre otros, la verdad son recursos muy interesantes y vale la pena hechar un ojo&#8230; Articulo de google code&#8230; Let&#8217;s [...]]]></description> <content:encoded><![CDATA[<p>Recientemente <a title="Google" href="http://blog.hectorbenitez.com/tag/google/">Google</a> presento una serie de tutoriales y articulos en los cuales nos presentan diferentes sugerencias para mejorar la velocidad de nuestras aplicaciones web, se tratan temas como CSS, PHP, <a title="Javascript" href="http://blog.hectorbenitez.com/category/desarrollo_programacion/desarrollo-web/javascript/">Javascript</a> y optimización de <a title="imagenes" href="http://blog.hectorbenitez.com/tag/imagenes/">imagenes</a> entre otros, la verdad son recursos muy interesantes y vale la pena hechar un ojo&#8230;</p><p><a href="http://blog.hectorbenitez.com/wp-content/uploads/2009/06/que-no-habia-GOOGLE.jpg"><img class="aligncenter size-full wp-image-394" title="que-no-habia-GOOGLE" src="http://blog.hectorbenitez.com/wp-content/uploads/2009/06/que-no-habia-GOOGLE.jpg" alt="que-no-habia-GOOGLE" width="400" height="316" /></a></p><p><a href="http://code.google.com/intl/es/speed/articles/" target="_blank">Articulo de google code&#8230;</a></p><div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><h1>Let&#8217;s make the web faster</h1></div>]]></content:encoded> <wfw:commentRss>http://blog.hectorbenitez.com/2009/06/hagamos-mas-rapida-a-la-web/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 4/37 queries in 0.009 seconds using disk: basic
Object Caching 984/1064 objects using disk: basic

Served from: blog.hectorbenitez.com @ 2012-02-07 02:28:29 -->
