<?xml version="1.0" encoding="ISO-8859-1"?><!-- generator="wordpress/2.3-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Apagando elementos &#8220;select&#8221; en Internet Explorer</title>
	<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/</link>
	<description>desarrollo web con estándares</description>
	<pubDate>Mon, 15 Mar 2010 19:37:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3-alpha</generator>

	<item>
		<title>By: AplicacionesWeb &#187; Blog Archive &#187; Apagando â€œselect&#8221; en IE</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3529</link>
		<author>AplicacionesWeb &#187; Blog Archive &#187; Apagando â€œselect&#8221; en IE</author>
		<pubDate>Mon, 11 Dec 2006 01:02:39 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3529</guid>
		<description>[...] Via EstadoBeta.com [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Via EstadoBeta.com [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: enzoscuro</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3292</link>
		<author>enzoscuro</author>
		<pubDate>Tue, 26 Sep 2006 20:46:32 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3292</guid>
		<description>Claro, disculpnme mi cegera, Ismael podrias hablar un poco de Comet</description>
		<content:encoded><![CDATA[<p>Claro, disculpnme mi cegera, Ismael podrias hablar un poco de Comet</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3291</link>
		<author>Ismael</author>
		<pubDate>Mon, 25 Sep 2006 18:15:46 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3291</guid>
		<description>Enzoscuro, la primera versión de la función en este mismo artículo no usa Prototype. La versión con Prototype sólo tiene sentido si ya estas usando la librería para otras partes de tu aplicación.</description>
		<content:encoded><![CDATA[<p>Enzoscuro, la primera versión de la función en este mismo artículo no usa Prototype. La versión con Prototype sólo tiene sentido si ya estas usando la librería para otras partes de tu aplicación.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: enzoscuro</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3290</link>
		<author>enzoscuro</author>
		<pubDate>Mon, 25 Sep 2006 15:58:40 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3290</guid>
		<description>Sin prototype como podria ser, que lata anxarle 50 kilos extras a la pagina solo para esconder un par de select

un saludo</description>
		<content:encoded><![CDATA[<p>Sin prototype como podria ser, que lata anxarle 50 kilos extras a la pagina solo para esconder un par de select</p>
<p>un saludo</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3214</link>
		<author>Ismael</author>
		<pubDate>Sat, 19 Aug 2006 00:01:36 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3214</guid>
		<description>Tienes razón, con unos ajustes a &lt;code&gt;Element.hide()&lt;/code&gt; se podría usar como función iteradora para &lt;code&gt;Array.each()&lt;/code&gt;, Por supuesto, siempre puedes sobreescribir areas parciales de Prototype en tu propio archivo JS.
Los métodos iteradores de Prototype tienen sentido el algunos casos puntuales (cuand ahorran código y ganan en legibilidad). Para otros casos basta con usar los iteradores nativos de Javascript (que además son más rápidos). Array.each trata de "emular" los bloques de Ruby, donde puedes hacer cosas como
&lt;pre&gt;
&lt;code&gt;
mi_array.each {&#124;elemento&#124;
    //haz algo con el elemento
}
&lt;/code&gt;
&lt;/pre&gt;
Básicamente, se pasa un "bloque" de código a &lt;code&gt;each()&lt;/code&gt;.
En Javascript el concepto de &lt;em&gt;bloque&lt;/em&gt; no existe y por lo tanto se pasa una función completa, que aumenta la cantidad de código y crea problemas de "scope" que deben ser solucionados con otros métodos de &lt;strong&gt;Prototype&lt;/strong&gt; (&lt;code&gt;function.bind()&lt;/code&gt; y &lt;code&gt;function.bindAsEventListener()&lt;/code&gt;).
Espero que se haya entendido algo :(</description>
		<content:encoded><![CDATA[<p>Tienes razón, con unos ajustes a <code>Element.hide()</code> se podría usar como función iteradora para <code>Array.each()</code>, Por supuesto, siempre puedes sobreescribir areas parciales de Prototype en tu propio archivo JS.<br />
Los métodos iteradores de Prototype tienen sentido el algunos casos puntuales (cuand ahorran código y ganan en legibilidad). Para otros casos basta con usar los iteradores nativos de Javascript (que además son más rápidos). Array.each trata de &#8220;emular&#8221; los bloques de Ruby, donde puedes hacer cosas como</p>
<pre>
<code>
mi_array.each {|elemento|
    //haz algo con el elemento
}
</code>
</pre>
<p>Básicamente, se pasa un &#8220;bloque&#8221; de código a <code>each()</code>.<br />
En Javascript el concepto de <em>bloque</em> no existe y por lo tanto se pasa una función completa, que aumenta la cantidad de código y crea problemas de &#8220;scope&#8221; que deben ser solucionados con otros métodos de <strong>Prototype</strong> (<code>function.bind()</code> y <code>function.bindAsEventListener()</code>).<br />
Espero que se haya entendido algo <img src='http://www.estadobeta.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mañungo</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3213</link>
		<author>Mañungo</author>
		<pubDate>Fri, 18 Aug 2006 23:44:56 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3213</guid>
		<description>Ismael:

En realidad &lt;code&gt;$$(’select’).each( Element.hide );&lt;/code&gt; se cae a medias: &lt;em&gt;each&lt;/em&gt; invoca a &lt;em&gt;Element.hide&lt;/em&gt; con los parámetros &lt;code&gt;Element.hide( select, index )&lt;/code&gt;; esto funciona bien para el &lt;em&gt;select&lt;/em&gt;, pero se cae para el &lt;em&gt;index&lt;/em&gt; que es solo un numero (no un Element).

Si haces &lt;code&gt;$$(’select’).each( alert );&lt;/code&gt; verás que aparecen &lt;em&gt;alerts&lt;/em&gt; para cada &lt;em&gt;select&lt;/em&gt; sin los &lt;em&gt;index&lt;/em&gt; porque &lt;em&gt;alert&lt;/em&gt; está preparada para recibir sólo un argumento, e ignora el segundo. Si &lt;em&gt;Element.hide&lt;/em&gt; fuera igual, mi idea funcionaría ok.

Mirando el código de Prototype, veo varias formas de resolverlo, pero claro, eso sería modificar la librería. De hecho, esto de andar creando taaaaaaaaaantas funciones anónimas, me aburre enormemente de Prototype :(</description>
		<content:encoded><![CDATA[<p>Ismael:</p>
<p>En realidad <code>$$(’select’).each( Element.hide );</code> se cae a medias: <em>each</em> invoca a <em>Element.hide</em> con los parámetros <code>Element.hide( select, index )</code>; esto funciona bien para el <em>select</em>, pero se cae para el <em>index</em> que es solo un numero (no un Element).</p>
<p>Si haces <code>$$(’select’).each( alert );</code> verás que aparecen <em>alerts</em> para cada <em>select</em> sin los <em>index</em> porque <em>alert</em> está preparada para recibir sólo un argumento, e ignora el segundo. Si <em>Element.hide</em> fuera igual, mi idea funcionaría ok.</p>
<p>Mirando el código de Prototype, veo varias formas de resolverlo, pero claro, eso sería modificar la librería. De hecho, esto de andar creando taaaaaaaaaantas funciones anónimas, me aburre enormemente de Prototype <img src='http://www.estadobeta.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3212</link>
		<author>Ismael</author>
		<pubDate>Fri, 18 Aug 2006 20:52:10 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3212</guid>
		<description>Mañungo:
&lt;code&gt;Array.each()&lt;/code&gt; tiene que recibir de argumento una función, que se ejecuta una vez por cada elemento del array (en este caso los elementos son los &lt;code&gt;selects&lt;/code&gt; de la página). Esa función "iteradora" recibe a su vez el elemento correpondiente como argumento. 

Entonces, el método &lt;code&gt;hide()&lt;/code&gt; tiene que ser invocado sobre cada elemento del array. El objeto &lt;code&gt;Element&lt;/code&gt; de Prototype es sólo un objeto que agrupa funciones relacionadas al manejo del DOM, y no representa a los &lt;code&gt;selects&lt;/code&gt; de nuestro array &lt;code&gt;$$("select")&lt;/code&gt;.

Por otro lado, no es lo mismo &lt;code&gt;Element.hide&lt;/code&gt; que &lt;code&gt;Element.hide&lt;strong&gt;()&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/code&gt;. &lt;code&gt;hide()&lt;/code&gt; es un método (una función perteneciente a un objeto) y los paréntesis son necesarios para ejecutarla y pasarle argumentos.</description>
		<content:encoded><![CDATA[<p>Mañungo:<br />
<code>Array.each()</code> tiene que recibir de argumento una función, que se ejecuta una vez por cada elemento del array (en este caso los elementos son los <code>selects</code> de la página). Esa función &#8220;iteradora&#8221; recibe a su vez el elemento correpondiente como argumento. </p>
<p>Entonces, el método <code>hide()</code> tiene que ser invocado sobre cada elemento del array. El objeto <code>Element</code> de Prototype es sólo un objeto que agrupa funciones relacionadas al manejo del DOM, y no representa a los <code>selects</code> de nuestro array <code>$$("select")</code>.</p>
<p>Por otro lado, no es lo mismo <code>Element.hide</code> que <code>Element.hide<strong>()</strong><strong></strong></code>. <code>hide()</code> es un método (una función perteneciente a un objeto) y los paréntesis son necesarios para ejecutarla y pasarle argumentos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mañungo</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3211</link>
		<author>Mañungo</author>
		<pubDate>Fri, 18 Aug 2006 20:31:28 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3211</guid>
		<description>Lo más elegante sería escribir... $$('select').each( Element.hide );... pero no funciona ( por qué ? propuesto al gentil lector :P )</description>
		<content:encoded><![CDATA[<p>Lo más elegante sería escribir&#8230; $$(&#8217;select&#8217;).each( Element.hide );&#8230; pero no funciona ( por qué ? propuesto al gentil lector <img src='http://www.estadobeta.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ismael</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3210</link>
		<author>Ismael</author>
		<pubDate>Fri, 18 Aug 2006 18:55:26 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3210</guid>
		<description>Jonathan: thanks for stopping by (what an honor!).
You are absolutely right. I explain the two interfaces in &lt;a href="http://www.estadobeta.com/2006/08/04/prototype/" rel="nofollow"&gt;this article&lt;/a&gt; (in Spanish), but for this example I stuck with the one I'm more used to. It is corrected now.

En castellano: Jonathan dice que, desde la versión 1.5 de &lt;strong&gt;Prototype&lt;/strong&gt;, la línea 

&lt;code&gt;Element.hide(select)&lt;/code&gt;

Se puede resumir en

&lt;code&gt;select.hide()&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Jonathan: thanks for stopping by (what an honor!).<br />
You are absolutely right. I explain the two interfaces in <a href="http://www.estadobeta.com/2006/08/04/prototype/" rel="nofollow">this article</a> (in Spanish), but for this example I stuck with the one I&#8217;m more used to. It is corrected now.</p>
<p>En castellano: Jonathan dice que, desde la versión 1.5 de <strong>Prototype</strong>, la línea </p>
<p><code>Element.hide(select)</code></p>
<p>Se puede resumir en</p>
<p><code>select.hide()</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Snook</title>
		<link>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3209</link>
		<author>Jonathan Snook</author>
		<pubDate>Fri, 18 Aug 2006 18:34:49 +0000</pubDate>
		<guid>http://www.estadobeta.com/2006/08/09/apagando-elementos-select-para-ie/#comment-3209</guid>
		<description>Pardon my lack of spanish but since you're using Prototype 1.5 you could simplify your code.

change Element.hide(select) to select.hide();</description>
		<content:encoded><![CDATA[<p>Pardon my lack of spanish but since you&#8217;re using Prototype 1.5 you could simplify your code.</p>
<p>change Element.hide(select) to select.hide();</p>
]]></content:encoded>
	</item>
</channel>
</rss>
