<?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>BRN Souza</title>
	<atom:link href="http://www.brnsouza.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brnsouza.com/blog</link>
	<description>Programação, Tecnologia e uma pitada de Designer</description>
	<lastBuildDate>Wed, 22 Jul 2009 02:00:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flexigrid &#8211; Grid jQuery</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/06/flexigrid-grid-jquery/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/06/flexigrid-grid-jquery/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 00:20:19 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=183</guid>
		<description><![CDATA[Hoje conheci o Flexigrid. Um plugin jQuery que cria grids a partir de JSON (requisitado via AJAX) ou "transforma" tabelas em grids.]]></description>
			<content:encoded><![CDATA[<p>Hoje conheci o Flexigrid. Um plugin jQuery que cria grids a partir de JSON (requisitado via AJAX) ou &#8220;transforma&#8221; tabelas em grids.</p>
<p><img src="http://www.brnsouza.com/blog/wp-content/uploads/2009/06/flexgrid2.jpg" alt="FlexiGrid - Plugin jQuery para geração de Grids" title="FlexiGrid" width="595" height="305" class="size-full wp-image-191" /></p>
<p>Os grids criados pelo plugin permitem por exemplo: ocultar colunas, reoordenar colunas, ordernar colunas, selecionar linhas, paginar os resultados, filtrar por coluna (não funcionou no IE6), dentre outras coisas. E o mais importante, tudo de maneira muito simples (tal qual como quase tudo na jQuery, né?)</p>
<p>Fiquei muito impressionado com ele, mas não testei ainda, só vi uns exemplos no proóprio site. Ainda assim espero testá-lo em breve.</p>
<p>Site para download: <a title="Flexigrid" href="http://www.flexigrid.info" target="_blank">http://www.flexigrid.info</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/06/flexigrid-grid-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Trabalhando no Google</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/06/trabalhando-no-google/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/06/trabalhando-no-google/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:06:57 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Besteiras]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=167</guid>
		<description><![CDATA[Vídeo mostrando como é "dura" a vida do pessoal que trabalha no Google aqui no Brasil também]]></description>
			<content:encoded><![CDATA[<p>Vida dura a desse pessoal do Google em São Paulo, heim?</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/TEeftX6mOUs&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=pt-br&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/TEeftX6mOUs&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=pt-br&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/06/trabalhando-no-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extendendo a jQuery</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/06/extendendo-a-jquery/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/06/extendendo-a-jquery/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 03:36:25 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=159</guid>
		<description><![CDATA[Como extender a jQuery para usar suas próprias funções Javascript por meio do uso dos seletores nativos da biblioteca.]]></description>
			<content:encoded><![CDATA[<p><strong>Objetivo:</strong> Entender como extender a jQuery para usar nossas próprias funções por meio do uso dos seletores nativos da biblioteca.</p>
<p>Pré-requisitos:</p>
<ul>
<li>Javascript (intermediário)</li>
<li>jQuery (básico) » &#8220;$&#8221; e Seletores</li>
<li>JSON (básico) » <a href="http://www.brnsouza.com/blog/?p=40/">O que é JSON?</a> | <a href="http://www.brnsouza.com/blog/?p=1">Parametrizando funções JS com JSON</a></li>
</ul>
<p>Quem está acostumado a trabalhar com Javascript já deve ter criado pelo menos uma função personalizada para uso em seus projetos.</p>
<p>Eu por exemplo, antes de conhecer a jQuery, tinha minha própria biblioteca de funções para manipulação do DOM e outras coisinhas também.</p>
<p>Mas depois que comecei a trabalhar com a jQuery, muitas das minhas funções cairam em desuso por serem contempladas dentro da própria jQuery, por exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    getAltura<span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span> <span style="color: #006600; font-style: italic;">//Retorna a altura (height) do elemento</span>
    getElement<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span>     <span style="color: #006600; font-style: italic;">//O mesmo que &quot;document.getElementById(id)&quot;</span>
    getSrc<span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span>    <span style="color: #006600; font-style: italic;">//Retorna o valor do atributo &quot;src&quot; de uma imagem</span>
    getValor<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span>       <span style="color: #006600; font-style: italic;">//O mesmo que &quot;document.getElementById(id).value&quot;. Essa eu usava de mais</span>
    <span style="color: #006600; font-style: italic;">//Dentre várias outras funções</span></pre></div></div>

<p>Como podemos ver todas essas funções são facilmente substituidas por funções nativas da jQuery. Especificamente para estas acima, hoje eu uso:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#element'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#element'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#element'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#element'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Mas nem todas as funções existentes na minha biblioteca são contempladas nativamente na jQuery.<br />
Eu tinha a seguinte função que trocava o src de uma imagem pra mim (por exemplo aqueles ícones de Mais e Menos que abrem e fecham alguma coisa).</p>
<p>Imagine que o meu ícone [+] tem como endereço o seguinte url: &#8220;../../imgs/icones/icnAbre.gif&#8221; e quando ele for clicado, a imagem deve ser alterada para mostrar o ícone [-] cujo endereço é &#8220;../../imgs/icones/icnFecha.gif&#8221;. A função foi escrita para receber somente as substrings que se alteram nos dois endereços. No nosso caso a única coisa que muda é que em um endereço existe o &#8220;Abre&#8221; e no outro endereço o &#8220;Fecha&#8221;. Dessa forma quando chamamos a função passamos o id da imagem que terá seu src alterado e a substring que deve ser alterada no src atual. Ex.: toggleSrc(&#8217;icnAbreFecha&#8217;, &#8216;Abre&#8217;, &#8216;Fecha&#8217;);</p>
<p>Assim ele troca na string do src o valor &#8220;Abre&#8221; por &#8220;Fecha&#8221; ou vice-versa (no caso da ícone da vez for o &#8220;Fecha&#8221;).</p>
<p>Abaixo a função:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> toggleSrc<span style="color: #009900;">&#40;</span>idImg<span style="color: #339933;">,</span> strSrc1<span style="color: #339933;">,</span> strSrc2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> alt<span style="color: #339933;">,</span> src <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>idImg<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">src</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>src.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>strSrc1<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        alt <span style="color: #339933;">=</span> <span style="color: #3366CC;">'clique para fechar'</span><span style="color: #339933;">;</span>
        src <span style="color: #339933;">=</span> src.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strSrc1<span style="color: #339933;">,</span> strSrc2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
        alt <span style="color: #339933;">=</span> <span style="color: #3366CC;">'clique para abrir'</span><span style="color: #339933;">;</span>
        src <span style="color: #339933;">=</span> src.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>strSrc2<span style="color: #339933;">,</span> strSrc1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>idImg<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> src<span style="color: #339933;">;</span>
    document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>idImg<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">alt</span> <span style="color: #339933;">=</span> alt<span style="color: #339933;">;</span>
    document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>idImg<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">title</span> <span style="color: #339933;">=</span> alt<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Vou mostrar como extender a jQuery para suportar nossas próprias funções personalizadas usando a função &#8220;toggleSrc()&#8221; listada acima como exemplo.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">toggleSrc</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> opts <span style="color: #339933;">=</span> $.<span style="color: #660066;">extend</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">toggleSrc</span>.<span style="color: #660066;">defaults</span><span style="color: #339933;">,</span> options<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> alt<span style="color: #339933;">,</span> src <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>src.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">strSrc1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                alt <span style="color: #339933;">=</span> <span style="color: #3366CC;">'clique para fechar'</span><span style="color: #339933;">;</span>
                src <span style="color: #339933;">=</span> src.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">strSrc1</span><span style="color: #339933;">,</span>opts.<span style="color: #660066;">strSrc2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
                alt <span style="color: #339933;">=</span> <span style="color: #3366CC;">'clique para abrir'</span><span style="color: #339933;">;</span>
                src <span style="color: #339933;">=</span> src.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span>opts.<span style="color: #660066;">strSrc2</span><span style="color: #339933;">,</span>opts.<span style="color: #660066;">strSrc1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #339933;">,</span> src<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'alt'</span><span style="color: #339933;">,</span> alt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'title'</span><span style="color: #339933;">,</span> alt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">toggleSrc</span>.<span style="color: #660066;">defaults</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
        strSrc1<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Abre'</span><span style="color: #339933;">,</span>
        strSrc2<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Fecha'</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<pre>
Linha 1 - Na linha 1, usamos um artifício do Javascript para garantir que o
          caracter "$" referencie obrigatoriamente a jQuery.
          Isso garante que mesmo que você use a jQuery (e o seu arquivo de
          extensão da jQuery) junto com outra biblioteca que também use o
          caracter "$" (por exemplo Prototype), ainda assim o seu código irá
          fazer referência a jQuery.
          A linha 1 trabalha em conjunto com a linha 21, ou seja, podemos ler
          o conjunto como algo do tipo: (function($){ ... })(jQuery);
Linha 2 - Esta linha utiliza a expressão jQuery nativa "$.fn" para adicionar
          a funcionalidade "toggleSrc" a jQuery de forma que eu possa chamá-la
		  nativamente com os seletores jQuery. Ex: $('#img').toggleSrc();
          Repare que a funcionalidade "toggleSrc" é atribuida uma função que
          recebe como parâmetro uma variável chamada "options". Essa variável
          é um JSON contendo os parâmetros necessários para executar a função
          da maneira desejada.
Linha 3 - Aqui utilizamos um recurso muito legal da jQuery que é o "$.extend".
          No caso da nossa função se nenhum parâmetro for passado, assumimos
          como padrão que os parâmetros serão os já definidos em
          "$.fn.toggleSrc.defaults".
          Internamente esse recurso lê os parâmetros que você passou e para
          aqueles que você não definiu na chamada da função ele substitui
          pelos valores padrão que foram defindos (linhas 28 e 29).
Linha 4 - Esta linha executa toda a ação existente no contexto da função
          aberta uma vez para cada elemento informado no seletor. Por exemplo,
          se houver duas imagens na página inteira e você chamar
          "$('img').toggleSrc();", o código existente dentro do contexto da
          função iniciada nesta linha (e terminado na linha 66) será
		  executado para cada uma das duas imagens retornadas pelo seletor
          "$('img').toggleSrc();". Se houvessem 50 imagens, esse código seria
          executado 50 vezes. Se prestarmos atenção ficará claro que essa é a
          filosofia da jQuery, não tem nada de novo aqui.
Linhas 5 a 15 - Aqui mora a lógica da nossa função e de importante destaco 3
          coisas:
          1. Neste escopo (dentro da função descrita na linha anterior) a
          palavra reservada "this" faz referência ao elemento DOM selecionado.
          Sempre um por vez, ou seja se "$('img').toggleSrc();" retornar 3
          elementos, "this" referenciará uma imagem de cada vez. Para cada
          execução do trecho (que será executado tantas vezes quantos forem os
          elementos encontrados no seletor jQuery) "this" fará referência a um
          dos elementos DOM <img> por vez.
          A variável "opts" (linhas 6, 8 e 11) nada mais é do que a variável
          resultante do que você passou como parâmetro para a função, mesclado
          como o que você já tinha definido como DEFAULT caso nada fosse
          passado. (conforme explicado na linha 3).
Linha 18 -"$.fn.toggleSrc.defaults" recebe os valores DEFAULT da sua função
          para os parâmetros que não forem definidos na chamada. No nosso caso
          definimos que as duas strings são "Abre" e "Fecha". Se você chamar a
          função assim: "$('img').toggleSrc({strSrc1:'Mais', strSrc2:'Menos'});"
          então os valores passados irão substituir os definidos como DEFAULT.
          Caso você chame a função assim: "$('img').toggleSrc({strSrc1:'Mais'});"
          os valores utilizados dentro da função serão "Mais" para "strSrc1"
          e "Fecha" para "strSrc2".
</pre>
<p>E assim eu extendo a jQuery adicionando a ela minhas próprias funções.<br />
Um exemplo de um arquivo meu com algumas funções é:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">    <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">radioSel</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>valueToSel<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            ...
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">shuffle</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            ...
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">fck</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            ...
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">fck</span>.<span style="color: #660066;">defaults</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
            BasePath<span style="color: #339933;">:</span> <span style="color: #3366CC;">'/../../_libs/fckeditor/'</span><span style="color: #339933;">,</span>
            ToolbarSet<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Basic'</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
        $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">toggleSrc</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>options<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            ...
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>$.<span style="color: #660066;">fn</span>.<span style="color: #660066;">toggleSrc</span>.<span style="color: #660066;">defaults</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
            strSrc1<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Abre'</span><span style="color: #339933;">,</span>
            strSrc2<span style="color: #339933;">:</span> <span style="color: #3366CC;">'Fecha'</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Como vemos aqui podemos adicionar mais de uma função personalizada no mesmo arquivo.<br />
Acho legal categorizar os arquivos de funções personalizadas organizando as funções por tipo. Por exemplo:<br />
jquery.forms.js &#8211; Funções referentes a formulários<br />
jquery.interface.js &#8211; Funções referentes a interface (animações, etc)<br />
jquery.ajax.js &#8211; Funções referentes a requisições ajax</p>
<p>É isso aí&#8230;  qualquer dúvida é só falar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/06/extendendo-a-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual jQuery</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/05/visual-jquery/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/05/visual-jquery/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:28:57 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Visual jQuery]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=155</guid>
		<description><![CDATA[Pra quem usa jQuery e não conhece a documentação <a href="http://www.visualjquery.com" target="_blank">Visual jQuery</a>, tem que dar uma olhada. Vale muito a pena!]]></description>
			<content:encoded><![CDATA[<p>Pra quem usa jQuery e não conhece a documentação <strong>Visual jQuery</strong>, tem que dar uma olhada. Vale muito a pena!</p>
<p>Eu uso demais. E salvando a página no seu computador você pode acessá-la localmente inclusive vendo os exemplos funcionando. Eu tenho uma cópia dela na minha pen drive para quando estou em um lugar off-line.</p>
<p><a href="http://www.visualjquery.com" target="_blank">http://www.visualjquery.com</a> </p>
<p>Fica aí a dica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/05/visual-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parametrizando funções JavaScript com JSON</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/05/parametrizando-funcoes-javascript-com-json/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/05/parametrizando-funcoes-javascript-com-json/#comments</comments>
		<pubDate>Sat, 30 May 2009 21:05:30 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[JSON]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[função]]></category>
		<category><![CDATA[parâmetro]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=123</guid>
		<description><![CDATA[Veja como usar JSON para parametrizar suas funções Javascript tornando o código mais legível e organizado.]]></description>
			<content:encoded><![CDATA[<p><b>Objetivo:</b> Entender como parametrizar funções JS usando JSON.</p>
<p>Pré-requisitos:</p>
<ul>
<li>Javascript (básico) » <a href="http://www.w3schools.com/jS/js_functions.asp" target="_blank">Funções</a></li>
<li>JSON (básico) » <a href="http://www.brnsouza.com/blog/?p=40" target="_blank">O que é JSON?</a></li>
</ul>
<p>Antes de conhecer o JSON, quando eu precisava ler o código javascript (para uma manutenção por exemplo) e me deparava com uma função JS que recebia muitos parâmetros, a identificação do que cada parâmetro representava era difícil, eu tinha que deduzir pelo valor de cada parâmetro passado, o que exatamente ele referenciava dentro da minha função ou então abrir o arquivo onde a função estava e ler o nome dos parâmetros recebidos na declaração dela.<br />
Ex.:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">addCarro<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'porsche'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'911 Turbo'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">480</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">310</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'3,5'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'prata'</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>O que é &#8220;480&#8243;? E o &#8220;310&#8243;? Será que &#8220;2009&#8243; é o ano de fabricação do carro?</p>
<p>Usando JSON para parametrizar nossas funções, nós conseguimos fazê-la mais legível quando de sua chamada. Para o exemplo acima, teríamos algo parecido com isso:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">addCarro<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#123;</span>
        montadora     <span style="color: #339933;">:</span> <span style="color: #3366CC;">'porsche'</span><span style="color: #339933;">,</span>
        modelo        <span style="color: #339933;">:</span> <span style="color: #3366CC;">'911 Turbo'</span><span style="color: #339933;">,</span>
        cavalos       <span style="color: #339933;">:</span> <span style="color: #CC0000;">480</span><span style="color: #339933;">,</span>
        velocidadeMax <span style="color: #339933;">:</span> <span style="color: #CC0000;">310</span><span style="color: #339933;">,</span>
        DeZeroaCem    <span style="color: #339933;">:</span> <span style="color: #3366CC;">'3,5'</span><span style="color: #339933;">,</span>
        cor           <span style="color: #339933;">:</span> <span style="color: #3366CC;">'prata'</span><span style="color: #339933;">,</span>
        anoFabricacao <span style="color: #339933;">:</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span>
        anoModelo     <span style="color: #339933;">:</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span>
        possuiFoto    <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Muito melhor de ler e usar, né? Os benefícios de se utilizar essa forma ficam ainda mais evidentes quando precisamos passar para nossas funções estruturas mais complexas de dados por exemplo arrays ou ainda outros JSON&#8217;s. Vejamos o exemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">addCarro<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#123;</span>
        montadora     <span style="color: #339933;">:</span> <span style="color: #3366CC;">'porsche'</span><span style="color: #339933;">,</span>
        modelo        <span style="color: #339933;">:</span> <span style="color: #3366CC;">'911 Turbo'</span><span style="color: #339933;">,</span>
        cavalos       <span style="color: #339933;">:</span> <span style="color: #CC0000;">480</span><span style="color: #339933;">,</span>
        velocidadeMax <span style="color: #339933;">:</span> <span style="color: #CC0000;">310</span><span style="color: #339933;">,</span>
        DeZeroaCem    <span style="color: #339933;">:</span> <span style="color: #3366CC;">'3,5'</span><span style="color: #339933;">,</span>
        cor           <span style="color: #339933;">:</span> <span style="color: #3366CC;">'prata'</span><span style="color: #339933;">,</span>
        anoFabricacao <span style="color: #339933;">:</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,</span>
        anoModelo     <span style="color: #339933;">:</span> <span style="color: #CC0000;">2009</span><span style="color: #339933;">,,</span>
        fotos         <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            <span style="color: #009900;">&#123;</span>arquivo<span style="color: #339933;">:</span><span style="color: #3366CC;">'imgs/9876/01.jpg'</span><span style="color: #339933;">,</span> legenda<span style="color: #339933;">:</span><span style="color: #3366CC;">'Pintura impecável'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#123;</span>arquivo<span style="color: #339933;">:</span><span style="color: #3366CC;">'imgs/9876/02.jpg'</span><span style="color: #339933;">,</span> legenda<span style="color: #339933;">:</span><span style="color: #3366CC;">'Interior todo em couro'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#123;</span>arquivo<span style="color: #339933;">:</span><span style="color: #3366CC;">'imgs/9876/03.jpg'</span><span style="color: #339933;">,</span> legenda<span style="color: #339933;">:</span><span style="color: #3366CC;">'Rodas de liga leve 20&quot;'</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
            <span style="color: #009900;">&#123;</span>arquivo<span style="color: #339933;">:</span><span style="color: #3366CC;">'imgs/9876/04.jpg'</span><span style="color: #339933;">,</span> legenda<span style="color: #339933;">:</span><span style="color: #3366CC;">'Visão lateral'</span><span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Aqui nós não dizemos simplesmente se tem ou não foto, mas sim quais são as fotos e para cada foto temos a informação do nome do arquivo e também da legenda (para exibirmos na página por exemplo).</p>
<p>Agora, como fica a declaração da função e como ler JSON passado como parâmetro:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> addCarro<span style="color: #009900;">&#40;</span>jsonOptions<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">//Lendo o JSON passado como parâmetro</span>
    jsonOptions.<span style="color: #660066;">montadora</span><span style="color: #339933;">;</span>       <span style="color: #006600; font-style: italic;">// 'porsche'</span>
    jsonOptions.<span style="color: #660066;">modelo</span><span style="color: #339933;">;</span>          <span style="color: #006600; font-style: italic;">// '911 Turbo'</span>
    jsonOptions.<span style="color: #660066;">cavalos</span><span style="color: #339933;">;</span>         <span style="color: #006600; font-style: italic;">// 480</span>
    jsonOptions.<span style="color: #660066;">velocidadeMax</span><span style="color: #339933;">;</span>   <span style="color: #006600; font-style: italic;">// 310</span>
    jsonOptions.<span style="color: #660066;">DeZeroaCem</span><span style="color: #339933;">;</span>      <span style="color: #006600; font-style: italic;">// '3,5'</span>
    jsonOptions.<span style="color: #660066;">cor</span><span style="color: #339933;">;</span>             <span style="color: #006600; font-style: italic;">// 'prata'</span>
    jsonOptions.<span style="color: #660066;">anoFabricacao</span><span style="color: #339933;">;</span>   <span style="color: #006600; font-style: italic;">// 2009</span>
    jsonOptions.<span style="color: #660066;">anoModelo</span><span style="color: #339933;">;</span>       <span style="color: #006600; font-style: italic;">// 2009</span>
    jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #339933;">;</span>           <span style="color: #006600; font-style: italic;">// [Objeto Array]</span>
    jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>        <span style="color: #006600; font-style: italic;">// [Objeto JSON]</span>
    jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">arquivo</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">// 'imgs/9876/01.jpg'</span>
    jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">legenda</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">// 'Visão lateral'</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">//Iterando sobre as fotos</span>
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> j<span style="color: #339933;">=</span>jsonOptions.<span style="color: #660066;">fotos</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>j<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">arquivo</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//lê o arquivo</span>
      jsonOptions.<span style="color: #660066;">fotos</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">legenda</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//lê a legenda</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Se você tiver alguma dúvida referente a manipulação do JSON leia <a href="http://www.brnsouza.com/blog/?p=40">este post</a> onde eu detalho como trabalhar com ele.</p>
<p>Qualquer dúvida, é só falar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/05/parametrizando-funcoes-javascript-com-json/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>O que é JSON? Como e quando usar</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/05/o-que-e-json-como-e-quando-usar/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/05/o-que-e-json-como-e-quando-usar/#comments</comments>
		<pubDate>Thu, 21 May 2009 20:51:24 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=40</guid>
		<description><![CDATA[O que é JSON? Como funciona e em quais situações devemos usá-lo? Neste post falo um pouco sobre essas questões, além de mostrar alguns exemplos práticos.

<b>Pré-requisitos: </b>Javascript]]></description>
			<content:encoded><![CDATA[<p><b>Objetivo:</b> Entender o funcionamento do JSON aprendendo como usá-lo para estruturar informações e iterar sobre elas</p>
<p>Pré-requisitos: </p>
<ul>
<li>Javascript básico (<a href="http://www.devguru.com/technologies/javascript/10545.asp" target="_blank">Array</a>, <a href="http://www.devguru.com/technologies/javascript/11476.asp" target="_blank">For</a>, <a href="http://www.devguru.com/technologies/javascript/11477.asp" target="_blank">For &#8230; in</a>)</li>
</ul>
<p>JSON (sigla para <strong><span style="text-decoration: underline;">J</span></strong>ava<strong><span style="text-decoration: underline;">S</span></strong>cript <strong><span style="text-decoration: underline;">O</span></strong>bject <strong><span style="text-decoration: underline;">N</span></strong>otation) é um padrão para escrever estruturas de dados em JavaScript.</p>
<p>O JSON é nativo do Javascript e apesar de recentemente ter ganhado muita evidência já esta disponível na linguagem há bastante tempo.</p>
<p>Acredito que o JSON ganhou muito destaque nos últimos tempos por conta do crescimento do Javascript como linguagem de programação, por oferecer uma maneira bastante &#8220;confortável&#8221; de se trabalhar com coleções de dados diversas.</p>
<p>Resumidamente o JSON se baseia na notação ATRIBUTO : VALOR, onde ATRIBUTO pode ser o nome que você quiser para identificar alguma coisa e VALOR o próprio valor desta coisa<br />
Exemplos:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//ATRIBUTO » &quot;nome&quot; | VALOR » &quot;Bruno Souza&quot;</span>
<span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;nome&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;Bruno Souza&quot;</span><span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//ATRIBUTO » &quot;font-size&quot; | VALOR » &quot;20px;&quot;</span>
<span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;font-size&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;20px;&quot;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ele tem uma estrutura parecida com o XML, logo se você conhece XML não terá dificuldades para entender seu funcionamento (mesmo não conhecendo XML, o entendimento do JSON é bem tranquilo, então se esse é o seu caso, não se assuste).</p>
<p>Observe o esquema:</p>
<ul>
<li>Filme
<ul>
<li>Título: X-Men Origens: Wolverine</li>
<li>Gênero: Aventura</li>
<li>Duração (min): 107</li>
<li>Ano: 2009</li>
</ul>
</li>
</ul>
<p>Para representarmos essa estrutura usando JSON, teríamos o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> filme <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">&quot;titulo&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;X-Men Origens: Wolverine&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;genero&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Aventura&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;duracao&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;107&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">&quot;ano&quot;</span>     <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;2009&quot;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Em XML teríamos</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">'1.0'</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">'utf-8'</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;titulo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>X-Men Origens: Wolverine<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/titulo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;genero<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Aventura<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/genero<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;duracao<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>107<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/duracao<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ano<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2009<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ano<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filme<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Podemos incrementar nossa estrutura de forma que haja mais de um filme e que para cada filme exista um item chamado &#8220;Elenco&#8221; e neste coloquemos a lista dos principais atores do filme.</p>
<ul>
<li> Filme
<ul>
<li>Título:  X-Men Origens: Wolverine</li>
<li>Gênero: Aventura</li>
<li>Duração (min): 107</li>
<li>Ano: 2009</li>
<li>Elenco:
<ul>
<li>Hugh Jackman (Logan / Wolverine)</li>
<li>Ryan Reynolds (Wade Wilson / Deadpool)</li>
<li>Liev Schreiber (Victor Creed / Dentes-de-sabre)</li>
<li>Dominic Monaghan (Bradley)</li>
</ul>
</li>
</ul>
</li>
<li> Filme
<ul>
<li>Título:  Velozes &#038; Furiosos 4</li>
<li>Gênero: Ação</li>
<li>Duração (min): 107</li>
<li>Ano: 2009</li>
<li>Elenco:
<ul>
<li>Vin Diesel (Dominic &#8220;Dom&#8221; Toretto)</li>
<li>Paul Walker (Brian O&#8217;Conner)</li>
<li>Jordana Brewster (Mia Toretto)</li>
<li>Michelle Rodriguez (Letty)</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Para esta nova estrutura fazemos um array de objetos JSON para os filmes (um para cada) e nos itens &#8220;elenco&#8221; um outro array simples de strings (nomes dos atores)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> filmes <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;titulo&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;X-Men Origens: Wolverine&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;genero&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Aventura&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;duracao&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;107&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;ano&quot;</span>     <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;2009&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;elenco&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            <span style="color: #3366CC;">&quot;Hugh Jackman (Logan / Wolverine)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Ryan Reynolds (Wade Wilson / Deadpool)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Liev Schreiber (Victor Creed / Dentes-de-sabre)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Dominic Monaghan (Bradley)&quot;</span>
        <span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #3366CC;">&quot;titulo&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Velozes &amp; Furiosos 4&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;genero&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Ação&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;duracao&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;107&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;ano&quot;</span>     <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;2009&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #3366CC;">&quot;elenco&quot;</span>  <span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
            <span style="color: #3366CC;">&quot;Vin Diesel (Dominic <span style="color: #000099; font-weight: bold;">\&quot;</span>Dom<span style="color: #000099; font-weight: bold;">\&quot;</span> Toretto)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Paul Walker (Brian O'Conner)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Jordana Brewster (Mia Toretto)&quot;</span><span style="color: #339933;">,</span>
            <span style="color: #3366CC;">&quot;Michelle Rodriguez (Letty)&quot;</span>
        <span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#93;</span></pre></td></tr></table></div>

<p>Vamos analisar a estrutura acima:</p>
<pre>
Linha 1 - "Abro" o array que conterá os JSON's de cada filme utilizando "["
Linha 2 - "Abro" o JSON do primeiro filme
Linha 3 - Crio o primeiro atributo do meu objeto JSON - "titulo"
          Observe que para atribuir um valor a um item usa-se ":"
          Este atributo poderá ser acessado literalmente pelo seu nome
          Ex.: filmes[0].titulo
          Apesar do atributo "titulo" ter sido declarado com o uso de
          aspas nós consiguimos acessa-lo diretamente sem elas.
          Isso ocorre porque internamente é como se o item se tornasse
          uma variável (ou uma propriedade no conceito OO) do objeto
          JSON que representa o filme alocado no índice ZERO do array
          filmes
Linhas 4 a 6 - Repito o mesmo procedimento da linha 3.
          Observe que utilizamos a "," para separar os atributos do
          objeto JSON
Linha 7 - Crio o atributo "elenco" e a ele eu atribuo um array contendo
          os atores do filme
Linha 13 - "Fecho" o JSON
Linhas 14 a 25 - Repito a mesma coisa para o próximo objeto JSON.
Linha 26 - "Fecho" o array de objetos JSON
</pre>
<p>Vamos ver agora como ler alguns dos dados da nossa estrutura:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">filmes<span style="color: #339933;">;</span>              <span style="color: #006600; font-style: italic;">//retorna um array contendo dois objetos JSON</span>
filmes<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>           <span style="color: #006600; font-style: italic;">//retorna um objeto JSON</span>
filmes<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">t</span>ítulo<span style="color: #339933;">;</span>    <span style="color: #006600; font-style: italic;">//retorna &quot;X-Men Origens: Wolverine&quot;</span>
filmes<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">elenco</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//retorna &quot;Jordana Brewster (Mia Toretto)&quot;</span></pre></div></div>

<p>Para iterar em cada um dos filmes do array utilizamos um loop simples</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>filmes.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    filme <span style="color: #339933;">=</span> filmes<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    infosFilme <span style="color: #339933;">=</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j <span style="color: #000066; font-weight: bold;">in</span> filme<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        atributo <span style="color: #339933;">=</span> j<span style="color: #339933;">;</span>
        valor <span style="color: #339933;">=</span> filme<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        infosFilme <span style="color: #339933;">+=</span> atributo<span style="color: #339933;">+</span><span style="color: #3366CC;">':<span style="color: #000099; font-weight: bold;">\t</span>'</span><span style="color: #339933;">+</span>valor<span style="color: #339933;">+</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>infosFilme<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Analisando a estrutura acima:</p>
<pre>
Linha 1 - Fazendo o for para tratar cada um dos filmes
          Como "filmes" é um array, a propriedade "length" me diz
          quantos são os filmes contidos no array
Linha 2 - Atribuo a variável "filme" o filme do índice apontado pelo for
Linha 3 - Limpo a variável "infosFilmes" atribuindo a ela uma string vazia
Linha 4 - Itero em cada um dos atributos do filme, lembrando que os
          atributos são: titulo, gênero, duração, ano e elenco
Linha 5 - Pego o nome do atributo j
Linha 6 - Pego o valor do atributo j
Linha 7 - Monto a string "ATRIBUTO: VALOR"
</pre>
<p>A jQuery usa muito JSON para parametrizar suas funções. <a href="http://www.brnsouza.com/blog/?p=123">Neste link</a> eu mostro como parametrizarmos nossas próprias funções JS usando JSON.</p>
<p>Para mais detalhes a cerca do JSON visite <a href="http://www.json.org" target="_blank">http://www.json.org</a></p>
<p>Qualquer dúvida, é só falar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/05/o-que-e-json-como-e-quando-usar/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Funções JS com argumentos dinâmicos</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/05/funcoes-js-com-argumentos-dinamicos/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/05/funcoes-js-com-argumentos-dinamicos/#comments</comments>
		<pubDate>Thu, 21 May 2009 17:14:59 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[função]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=34</guid>
		<description><![CDATA[Veja como criar uma função Javascript que possa receber indefinidos valores como parâmetro e ainda assim tratá-los corretamente.

<b>Pré-requisitos: </b>Javascript]]></description>
			<content:encoded><![CDATA[<p><strong>Problema</strong>: Como criar uma função Javascript que possa receber indefinidos valores como parâmetro e ainda assim tratá-los corretamente?</p>
<p>Pré-requisitos:</p>
<ul>
<li>Javascript (básico)</li>
</ul>
<p>Para ilustrar a utilização do recurso, vamos imaginar que precisamos criar uma função para a qual passemos uma lista de ID&#8217;s de elementos e essa função oculte todos eles.</p>
<p>Essa função nunca sabe quantos serão os elementos passados para ela, e ainda assim deve ocultar tantos elementos quantos forem passados.</p>
<p>Queremos então poder chamar a função com algo mais ou menos assim:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">hide<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'inputA'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'comboB'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'imgC'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'divD'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>E quando chamada a função irá então ocultar os elementos cujos ID&#8217;s sejam os passados como parâmetro.</p>
<p>Nossa função fica assim:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> hide<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    qtdArgumentos <span style="color: #339933;">=</span> arguments.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> qtdArgumentos<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> element <span style="color: #339933;">=</span> arguments<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        element <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>element<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        element.<span style="color: #660066;">style</span>.<span style="color: #660066;">display</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'none'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Toda função JS tem como um de seus atributos o &#8220;arguments&#8221; que é um array. Este atributo sempre é preenchido no momento em que a função é chamada e automaticamente preenchido com os argumentos passados como parâmetro na chamada da função.</p>
<p>No nosso caso, para o exemplo acima, teremos como valor do atributo &#8220;arguments&#8221; quando da chamada da função o seguinte array: ['inputA', 'comboB', 'imgC', 'divD'].</p>
<p>Em JS todo array possui um atributo chamado &#8220;length&#8221; que guarda o tamanho do array referenciado. Quando usamos &#8220;arguments.length&#8221; descobrimos quantos foram os argumentos passados para a função. Desta maneira podemos iterar sobre cada um dos elementos (linhas 3 a 7), e fazermos o que tem que ser feito, no nosso caso, ocultar cada um dos elementos passados por parâmetro.</p>
<p>Antes de usar a jQuery (que resolve isso pra gente de outra maneira) eu usava muito, funções com argumentos dinâmicos, para coisas simples que deveria ser repetidas individualmente para cada elemento, como setar uma classe de erro em todos os divs mal preenchidos [setClass('classErro', 'divA', 'divB', 'divC', ..., 'divZ')], habilitar ou desabilitar elementos em um form [disable('inputA', 'inputB', 'inputC', ..., 'inputZ')], dentre outras coisas.</p>
<p>Qualquer dúvida é só falar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/05/funcoes-js-com-argumentos-dinamicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manipulando Radiobox (extendendo a jQuery)</title>
		<link>http://www.brnsouza.com/blog/index.php/2009/05/manipulando-radiobox/</link>
		<comments>http://www.brnsouza.com/blog/index.php/2009/05/manipulando-radiobox/#comments</comments>
		<pubDate>Sun, 17 May 2009 00:34:49 +0000</pubDate>
		<dc:creator>Bruno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Radiobox]]></category>

		<guid isPermaLink="false">http://www.brnsouza.com/blog/?p=1</guid>
		<description><![CDATA[Como descobrir usando javascript qual RadioBox está selecionado? Como limpar a seleção de todos Radios? Como selecionar uma Radio dinamicamente?

<b>Pré-requisitos: </b>Javascript, jQuery, JSON]]></description>
			<content:encoded><![CDATA[<p><strong>Problema</strong>: Como descobrir qual RadioBox está selecionado? Como limpar a seleção de todos Radios? Como selecionar uma Radio dinamicamente com o JS?</p>
<p>Pré-requisitos:</p>
<ul>
<li>Javascript (intermediário) » <a href="http://www.brnsouza.com/blog/?p=34">Funções JS com argumentos dinâmicos</a></li>
<li>jQuery (intermediário)  » <a href="#">Extendendo a jQuery</a></li>
<li>JSON (básico) » <a href="http://www.brnsouza.com/blog/?p=40/">O que é JSON?</a> | <a href="http://www.brnsouza.com/blog/?p=1">Parametrizando funções JS com JSON</a></li>
<li>HTML (básico)</li>
</ul>
<p>Pra resolver essas questões eu criei uma pequena extensão para a jQuery que me ajuda com isso:</p>
<p>Campos no formulário:<br />
<img src="http://www.brnsouza.com/blog/wp-content/uploads/2009/05/manipulandoradiobox_img1.gif" alt="manipulandoradiobox" title="manipulandoradiobox" width="595" height="105" class="aligncenter size-full wp-image-58" /></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    $.<span style="color: #660066;">fn</span>.<span style="color: #660066;">radioSel</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>valueToSel<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #006600; font-style: italic;">/* 
        Como usar
        » Marca o radio cujo valor é 'F';
          $('input[id=sexo]').radioSel('F')
        » Retorna o valor do radio selecionado ou 'false' caso nenhum esteja marcado;
          $('input[id=sexo]').radioSel()
        » Limpa todos o radio marcado;
          $('input[id=sexo]').radioSel('')
        */</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>arguments.<span style="color: #660066;">length</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>valueToSel<span style="color: #339933;">!=</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// itera sobre cada elemento encontrado</span>
                    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span>valueToSel<span style="color: #009900;">&#41;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">checked</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">//Se veio vazio é para limpar todas as marcações</span>
                <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">checked</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            valorSelecionado <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// itera sobre cada elemento encontrado</span>
                <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">checked</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    valorSelecionado <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">return</span> valorSelecionado<span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">return</span> valorSelecionado<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>jQuery<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Para usar a extensão basta fazer o select jQuery e chamar o método &#8220;radioSel&#8221;</p>
<p>Marcar o radio cujo valor é &#8216;F&#8217;</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[id=sexo]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">radioSel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'F'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&nbsp;</p>
<p>Retornar o valor do radio selecionado (&#8217;false&#8217; caso nenhum esteja marcado);</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[id=sexo]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">radioSel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&nbsp;</p>
<p>Limpar todos o radio marcado;</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input[id=sexo]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">radioSel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&nbsp;</p>
<p>Como os dois radios possuem o mesmo &#8220;id&#8221;, se eu usasse &#8220;$(&#8217;#sexo]&#8217;)&#8221; o jQuery somente me retornaria o primeiro elemento input que ele encontrasse com o id &#8220;sexo&#8221;, por isso utilizei &#8220;$(&#8217;input[id=sexo]&#8216;)&#8221; para conseguir selecionar não pela identificação do elemento, mas sim pelo atributo &#8220;id&#8221;, assim consigo todos os elementos onde &#8220;id=sexo&#8221;. Esquisito, né? Mas para o jQuery faz diferença.</p>
<p>Qualquer dúvida, é só falar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brnsouza.com/blog/index.php/2009/05/manipulando-radiobox/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

