<?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>PicaTeclas &#187; hacks</title>
	<atom:link href="http://picateclas.net/posts/category/hacks/feed/" rel="self" type="application/rss+xml" />
	<link>http://picateclas.net</link>
	<description></description>
	<lastBuildDate>Tue, 27 Jul 2010 10:30:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ultra-encadenamiento con jQuery</title>
		<link>http://picateclas.net/posts/ultra-encadenamiento-con-jquery/</link>
		<comments>http://picateclas.net/posts/ultra-encadenamiento-con-jquery/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 12:32:29 +0000</pubDate>
		<dc:creator>zetxek</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://picateclas.net/?p=41</guid>
		<description><![CDATA[Una de las posibilidades más interesantes que ofrece jQuery es la de encadenar funciones, que permite aplicar al mismo objeto una serie de métodos en una sóla instrucción (que al final equivale a una sola línea). Uno de los puntos donde esto se cumple en menor medida es, dentro de funciones, al tener que usar [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las posibilidades más interesantes que ofrece jQuery es la de encadenar funciones, que permite aplicar al mismo objeto una serie de métodos en una sóla instrucción (que al final equivale a una sola línea). Uno de los puntos donde esto se cumple en menor medida es, dentro de funciones, al tener que usar el objeto <code>this</code> para hacer referencia al objeto desde el que se inició el evento que realizó la llamada a la función. Con este código se ve más claro:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p41code4'); return false;">Ver código</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p414"><td class="code" id="p41code4"><pre class="javascript" style="font-family:monospace;">jQuery(&quot;div&quot;).hide(&quot;slow&quot;, function(){
  jQuery(this)
    .addClass(&quot;done&quot;)
    .find(&quot;span&quot;)
      .addClass(&quot;done&quot;)
    .end()
    .show(&quot;slow&quot;, function(){
      jQuery(this).removeClass(&quot;done&quot;);
    });
});</pre></td></tr></table></div>

<p>Tras unas modificaciones realizadas a modo de prueba por el equipo de desarrollo de jQuery, el código anterior se transformaría en el siguiente, sin ser necesario hacer mención explícita al objeto <code>this</code>:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p41code5'); return false;">Ver código</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p415"><td class="code" id="p41code5"><pre class="javascript" style="font-family:monospace;">jQuery(&quot;div&quot;).chain(&quot;hide&quot;, &quot;slow&quot;)
  .addClass(&quot;done&quot;)
  .find(&quot;span&quot;)
    .addClass(&quot;done&quot;)
  .end()
  .chain(&quot;show&quot;, &quot;slow&quot;)
    .removeClass(&quot;done&quot;)
  .end()
.end();</pre></td></tr></table></div>

<p>A Jonh Resig no le acaba de gustar, porque pasa como argumento una cadena a la segunda función, porque no le convence el nombre del método ("chain") y por último, porque si modifican jQuery para que acepte este "ultraencadenamiento", se pierde la posibilidad de invocar a funciones nativas de Javascript, como en este ejemplo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p41code6'); return false;">Ver código</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p416"><td class="code" id="p41code6"><pre class="javascript" style="font-family:monospace;">jQuery(this).html( jQuery(this).attr(&quot;href&quot;) )</pre></td></tr></table></div>

<p>Así que, de momento, la modificación se está debatiendo. A mi sí me gusta, porque puedes seguir accediendo a las funciones de Javascript mediante funciones de jQuery, y entiendo que ahorraría más líneas de código de las que costaría usarlo, pero en cualquier caso coincido con John Resig en que es un hack bastante interesante...</p>
<p>Vía | <a href="http://ejohn.org/blog/ultra-chaining-with-jquery/">Blog de Jonh Resig</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://picateclas.net/posts/ultra-encadenamiento-con-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
