<?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>Artigos sobre jQuery, XHTML, CSS e PHP &#124; Julio Bitencourt &#187; CSS</title>
	<atom:link href="http://www.juliobitencourt.com/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.juliobitencourt.com</link>
	<description>Artigos e tutoriais sobre desenvolvimento web, jQuery, HTML, PHP, CSS e outras tecnologias.</description>
	<lastBuildDate>Sat, 17 Jul 2010 18:18:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10 dicas para escrever um bom código jQuery</title>
		<link>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 17:19:35 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Produtividade]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=131</guid>
		<description><![CDATA[Recebi este artigo via twitter com 10 dicas muito legais para melhorar o código escrito em jQuery.
Achei interessante criar uma resumo em português com estas 10 dicas. A maioria delas eu passei a utilizar em meus projetos!
1. Use sempre o $(document).ready()
Coloque todo seu código dentro desta função. Isto irá fazer com que seu código jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi este <a title="Link para o artigo original. Em inglês" href="http://www.myinkblog.com/articles/10-tips-for-writing-better-jquery-code/comment-page-1/#comment-29373" target="_blank">artigo</a> via twitter com 10 dicas muito legais para melhorar o código escrito em jQuery.</p>
<p>Achei interessante criar uma resumo em português com estas 10 dicas. A maioria delas eu passei a utilizar em meus projetos!<span id="more-131"></span></p>
<h3>1. Use sempre o $(document).ready()</h3>
<p>Coloque todo seu código dentro desta função. Isto irá fazer com que seu código jQuery seja executado assim que o DOM for carregado mas antes do conteúdo <strong>(veja a dica 2)</strong>. Isto permite que você atribua funções aos eventos dos elementos. Evitando o uso de onload, onclick entre outros. Ou seja, você não irá interferir na marcação HTML com o javascript.</p>
<h3>2. Use o $(window).load ()</h3>
<p>Embora a maioria dos exemplos sejam colocados dentro de $(document).ready() é melhor evitar colocar tudo dentro dele.</p>
<p>$(document).ready() é muito útil. Mas ele ocorre durante a renderização do documento. Funcionalidades supérfluas como scrolling e drag and drop, etc podem ser colocadas dentro de $(window).load() que é executada após o download completo da página.</p>
<p>A sintaxe é a mesma do $(document).ready()</p>
<h3>3. Carregue somente o que precisa</h3>
<p>Nós programadores somos tentados a escrever todo o código javascript em um mesmo local e usá-lo em todas as páginas, seja em forma de arquivo, ou repetindo o código no velho Ctrl C + Ctrl V. O jQuery leva tempo para vasculhar todo o documento em busca dos elementos. Isto pode causar uma queda no rendimento da aplicação.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'home'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #006600; font-style: italic;">// Código usado na home</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blog'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #006600; font-style: italic;">// Código usado no blog</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>4. Saiba o que é o método data() e use-o</h3>
<p>Para guardar e utilizar alguns dados você pode utilizar o método data da jQuery.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   <span style="color: #006600; font-style: italic;">// Define o valor</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.myselector'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfavcolor'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orange'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #006600; font-style: italic;">// E então. Retorna o valor</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myselector'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfavcolor'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Eu escrevi um artigo sobre o método data que você pode ver <a href="http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/">clicando aqui</a></p>
<h3>5. Seletores internos da jQuery</h3>
<p>Conhecer os seletores CSS ajuda muito na hora de escrever código jQuery. Mas os seletores internos também ajudam bastante. Veja os seletores aqui <a href="http://docs.jquery.com/Selectors">http://docs.jquery.com/Selectors</a>.<br />
Por exemplo</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div:contains('hello')&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#cc0000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O código acima deixa vermelha a cor de background de todos os elementos div que contenham a palavra &#8220;hello&#8221;. Você também pode usar</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input:password'</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p>para selecionar todos os campos do tipo password</p>
<h3>6. Crie flags com classes</h3>
<p>Você pode usar &#8220;flags&#8221; para monitorar o que o usuário está fazendo, ou então para verificar quando determinada ação foi feita ou não. A função addClass serve para adicionar uma classe em um elemento. Desta forma você pode verificar posteriormente a existência da classe com a função hasClass</p>
<h3>7. Não chame o mesmo seletor várias vezes</h3>
<p>Ao invés de fazer isto</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Faça isto</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $p.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $p.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Desta forma se armazena o objeto retornado pelo seletor em uma variável para posterior reuso.</p>
<h3>8. Encadeie (quase) tudo</h3>
<p>O encadeamento é muito útil. O mesmo código do exemplo anterior por ser escrito assim</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'color'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'#000000'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">text</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'paragraph'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeTo</span> <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Tenha cuidado ao utilizar o encadeamento pois pode causar certa lentidão.</p>
<h3>9. Utilize o toggleClass</h3>
<p>Você pode alternar classes de elementos para selecionar seu comportamento. Se sua classe .hidden não mostra nenhum item você pode os tornar visíveis com</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p.hidden'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>10. Guarde os resultados</h3>
<p>Quando estiver lidando com funções, você pode querer guardar alguns resultados para uso posterior. Uma solução possível é guardar os resultados em objetos com escopo global.</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: #006600; font-style: italic;">// use the window object for instance</span>
   window.$results <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
   one <span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>
   two <span style="color: #339933;">:</span> <span style="color: #CC0000;">0</span>
   <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #006600; font-style: italic;">// this is the function, perhaps ran more than once</span>
   <span style="color: #003366; font-weight: bold;">function</span> getResults <span style="color: #009900;">&#40;</span>first<span style="color: #339933;">,</span> second<span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
   $results.<span style="color: #660066;">one</span> <span style="color: #339933;">=</span> first<span style="color: #339933;">;</span>
   $results.<span style="color: #660066;">two</span> <span style="color: #339933;">=</span> second<span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #006600; font-style: italic;">// run function</span>
   getResults <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li.blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a.red));
   $results.one.hasClass ('</span>blue<span style="color: #3366CC;">'); // true
   $results.two.hasClass ('</span>blue<span style="color: #3366CC;">'); // false
&nbsp;
   // run again
   getResults ($('</span>li.<span style="color: #660066;">red</span><span style="color: #3366CC;">'), $('</span>a.<span style="color: #660066;">blue</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   $results.<span style="color: #660066;">one</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// false</span>
   $results.<span style="color: #660066;">two</span>.<span style="color: #660066;">hasClass</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'blue'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// true</span></pre></td></tr></table></div>

<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/05/corrigir-png-transparente-no-ie-6-com-jquery/' title='Corrigir PNG transparente no IE 6 com jQuery'>Corrigir PNG transparente no IE 6 com jQuery</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "framework";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Método data() da jQuery</title>
		<link>http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 02:42:48 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dom]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=185</guid>
		<description><![CDATA[Este é um método que eu vejo pouca gente utilizando
Com ele você pode armazenar informações no formato chave/valor nos elementos do DOM.
Veja a sintaxe:
Define um valor para a chave name
data( name, value)
Retorna o valor da chave name
data( name)
Exemplo:
Digamos que eu queira controlar a exibição de um elemento. Neste caso um div com uma mensagem.
Veja o [...]]]></description>
			<content:encoded><![CDATA[<p>Este é um método que eu vejo pouca gente utilizando</p>
<p>Com ele você pode armazenar informações no formato chave/valor nos elementos do DOM.<span id="more-185"></span></p>
<p>Veja a sintaxe:</p>
<p>Define um valor para a chave <span style="color: #0000ff;">name</span><br />
<span style="color: #0000ff;">data( name, value)</span></p>
<p>Retorna o valor da chave <span style="color: #0000ff;">name</span><br />
<span style="color: #0000ff;">data( name)</span></p>
<h3>Exemplo:</h3>
<p>Digamos que eu queira controlar a exibição de um elemento. Neste caso um div com uma mensagem.</p>
<p>Veja o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;visible&quot;</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>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#link&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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;">if</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;visible&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</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>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</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: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;visible&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">!</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;div#message&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">data</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;visible&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Veja um <a title="Exemplo de funcionamento do método data() da jQuery" href="http://www.juliobitencourt.com/exemplos/metodo_data_da_jquery.html">exemplo</a> aqui</p>
<p>É claro que existem maneiras mais elegantes de verificar se um elemento está visível ou não. Você pode usar a função <a title="Documentação jQuery" href="http://docs.jquery.com/Is"><strong>is()</strong></a> em conjunto com o seletor <a title="Seletor visible jQuery" href="http://docs.jquery.com/Selectors/visible"><strong>:visible</strong></a> por exemplo. Mas este não é o foco deste post e este exemplo serve somente para mostrar o funcionamento do método data().<br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/' title='10 dicas para escrever um bom código jQuery'>10 dicas para escrever um bom código jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/06/estilizando-links-com-seletores-css/' title='Estilizando links com seletores CSS'>Estilizando links com seletores CSS</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "html";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Função live() da jQuery</title>
		<link>http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 14:36:06 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dom]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=160</guid>
		<description><![CDATA[Uma das coisas que mais me agradam na jQuery é a manipulação de eventos. Para quem não conhece, veja o código a seguir:

$&#40;&#34;td a&#34;&#41;.click&#40;function&#40;&#41;&#123;
	$&#40;this&#41;.closest&#40;&#34;tr&#34;&#41;.children&#40;&#34;td&#34;&#41;.toggleClass&#40;&#34;highlight&#34;&#41;;
	return false;
&#125;&#41;;

Este código vai executar a função passada como parâmetro ao se clicar nos links que estiverem dentro de colunas (veja um exemplo da função closest(), usada no exemplo, clicando aqui).
É bom [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das coisas que mais me agradam na jQuery é a manipulação de eventos. Para quem não conhece, veja o código a seguir:<span id="more-160"></span></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;">&quot;td a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span></pre></div></div>

<p>Este código vai executar a função passada como parâmetro ao se clicar nos links que estiverem dentro de colunas (veja um exemplo da função closest(), usada no exemplo, clicando <a title="Link para o artigo sobre a função closest() da jQuery." href="http://www.juliobitencourt.com/exemplos/funcao-closest-da-jquery" target="_self">aqui</a>).</p>
<p>É bom lembrar que o comando <em>return false</em> é usado para que não seja executado o evento padrão do browser que é o direcionamento para o arquivo que esteja no atributo <em>href </em>do link.</p>
<p><strong>Eventos e Manipulação do DOM</strong></p>
<p>Até aqui tudo tranquilo. Mas se sua aplicação manipula o DOM, criando ou excluindo elementos do documento, a manipulação de eventos pode dar trabalho.</p>
<p><a title="Exemplo de criação de elementos no DOM via jQuery" href="http://www.juliobitencourt.com/exemplos/funcao_live_da_jquery_ex1.html" target="_blank">Neste exemplo</a> clique no link para criar uma nova linha na tabela e depois clique no link <em>Comprar</em> da nova linha. O evento não irá funcionar. Segue o código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#cria-linha&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tbody&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'
&nbsp;
50
Melancia
10,00
&lt;a title=&quot;Comprar&quot; href=&quot;#&quot;&gt;Comprar&lt;/a&gt;
&nbsp;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>O código que citei acima, criará o evento <em>click</em> nos elementos que estiverem no DOM no momento do carregamento da página. E não irá funcionar para elementos criados de forma dinâmica por sua aplicação.</p>
<p>Até a versão 1.2 da jQuery, tínhamos que usar alternativas para contornar o problema. Eu uso/usava o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#cria-linha&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tbody&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'
&nbsp;
50
Melancia
10,00
&lt;a title=&quot;Comprar&quot; href=&quot;#&quot;&gt;Comprar&lt;/a&gt;
&nbsp;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><a title="Exemplo de uso das funções bind e unbind da jQuery" href="http://www.juliobitencourt.com/exemplos/funcao_live_da_jquery_ex2.html">Veja o exemplo</a></p>
<p>Este código exclui o evento click, através da função <strong>unbind</strong>, e recria o evento através da função <strong>bind</strong>. Desta forma evitamos a duplicação do evento para os elementos que já estavam presentes no DOM e recriamos para todos os elementos novamente. Este código gera um processamento desnecessário e possivelmente queda na performance da aplicação.</p>
<p><strong>A função live(type, fn)</strong></p>
<p>Adicionada na versão 1.3 da jQuery, a função live permite que o evento vinculado aos elementos esteja disponível também para os elementos criados no futuro.</p>
<p>A função aceita os seguintes eventos: <em>click, dblclick,  mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress e keyup.</em></p>
<p>Já os eventos <em>blur, focus, mouseenter, mouseleave, change e submit</em> não são suportados. Para mais informações consulte a documentação da função <a title=" Events/live - jQuery JavaScript Library" href="http://docs.jquery.com/Events/live#typefn" target="_blank">http://docs.jquery.com/Events/live#typefn</a>.</p>
<p>Seu uso é simples, veja o código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</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;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#cria-linha&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tbody&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'
&nbsp;
50
Melancia
10,00
&lt;a title=&quot;Comprar&quot; href=&quot;#&quot;&gt;Comprar&lt;/a&gt;
&nbsp;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Agora veja o <a title="Exemplo de uso da função live() da jQuery" href="http://www.juliobitencourt.com/exemplos/funcao_live_da_jquery_ex3.html">exemplo</a> em funcionamento.<br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/' title='10 dicas para escrever um bom código jQuery'>10 dicas para escrever um bom código jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/06/estilizando-links-com-seletores-css/' title='Estilizando links com seletores CSS'>Estilizando links com seletores CSS</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "html";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Função closest() da jQuery</title>
		<link>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/</link>
		<comments>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 01:55:13 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=121</guid>
		<description><![CDATA[Introduzida na versão 1.3 do jQuery a função closest() retorna o elemento pai mais próximo encontrado. Conforme o seletor passado no parâmetro. Complicado? Não! Veja o exemplo:
Digamos que ao clicar em um link em determinada linha de uma tabela você queira alterar a cor de fundo de toda a linha.
Segue o código:

$&#40;document&#41;.ready&#40;function&#40;&#41;&#123;
	$&#40;&#34;a&#34;&#41;.click&#40;function&#40;&#41;&#123;
		$&#40;this&#41;.closest&#40;&#34;tr&#34;&#41;.children&#40;&#34;td&#34;&#41;.toggleClass&#40;&#34;highlight&#34;&#41;;
		return false;
	&#125;&#41;;
&#125;&#41;;

Na linha 2 [...]]]></description>
			<content:encoded><![CDATA[<p>Introduzida na versão 1.3 do <a class="bbli" href="http://sledge.boo-box.com/list/page/alF1ZXJ5XyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNf-48">jQuery<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> a função closest() retorna o elemento pai mais próximo encontrado. Conforme o seletor passado no parâmetro. Complicado? Não! <span id="more-121"></span>Veja o exemplo:</p>
<p>Digamos que ao clicar em um link em determinada linha de uma tabela você queira alterar a cor de fundo de toda a linha.</p>
<p>Segue o código:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</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: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</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: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">closest</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tr&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;td&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;highlight&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">return</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: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Na linha 2 atribuímos uma função ao evento click dos elementos <strong>a</strong> (links).</p>
<p>Na linha 3 usamos a função <strong>closest()</strong> com o seletor <strong>tr</strong>. Ou seja, buscamos o elemento tr mais próximo ao link que foi clicado que é retornado através do objeto <strong>this</strong>.</p>
<p>Na mesma linha 3 usamos a função <strong>toggleClass</strong> para atribuir à linha a class <strong>highlight</strong>. A função <strong>toggleClass</strong> alterna o atributo class de modo que caso o elemento tenha a classe, a mesma é retirada. E vice-versa.</p>
<p>Reparem que fizemos as chamadas as funções <strong>closest()</strong> e <strong>toggleClass()</strong> de forma encadeada. Ou seja, em sequencia.<br />
Caso tenham dúvidas sobre o encadeamento de funções ou sobre a função <strong>toggleClass</strong>, podem perguntar através dos comentários.</p>
<p>Na linha 4 usamos <strong>return false</strong> para que o evento do clique no link seja cancelado no browser.</p>
<p>Simples assim! <a title="Exemplo de funcionamento da função closest() com jQuery" href="http://www.juliobitencourt.com/exemplos/funcao_closest_da_jquery.html">Clique aqui</a> para ver o exemplo em funcionamento.<br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/10-dicas-para-escrever-um-bom-codigo-jquery/' title='10 dicas para escrever um bom código jQuery'>10 dicas para escrever um bom código jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/saiba-se-uma-requisicao-foi-feita-via-ajax-no-php/' title='Saiba se uma requisição foi feita via AJAX no PHP'>Saiba se uma requisição foi feita via AJAX no PHP</a></li>
<li><a href='http://www.juliobitencourt.com/2009/10/gerar-download-de-conteud-no-php/' title='Gerar download de conteúdo no PHP'>Gerar download de conteúdo no PHP</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "html";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Estilizando links com seletores CSS</title>
		<link>http://www.juliobitencourt.com/2009/06/estilizando-links-com-seletores-css/</link>
		<comments>http://www.juliobitencourt.com/2009/06/estilizando-links-com-seletores-css/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 17:58:05 +0000</pubDate>
		<dc:creator>Julio Bitencourt</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Padrões Web]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.juliobitencourt.com/?p=103</guid>
		<description><![CDATA[Aprender a usar os seletores CSS e explorar o seu potencial pode te ajudar a economizar tempo no desenvolvimento de um web site.
Neste artigo você aprenderá a colocar ícones para tipos diferentes de links.
Seletores de atributos e operadores
Os seletores de atributos são escritos entre colchetes &#8220;[]&#8220;.
Exemplo: a[href='manual.pdf']
Este exemplo é interessante mas não tão útil, pois [...]]]></description>
			<content:encoded><![CDATA[<p>Aprender a usar os seletores <span class="bbused"><a class="bbli" href="http://sledge.boo-box.com/list/page/Q1NTXyMjX2JveF8jI19ib28tYm94ZnktYXV0b18jI18=-44">CSS<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a></span> e explorar o seu potencial pode te ajudar a economizar tempo no desenvolvimento de um web site.<br />
Neste artigo você aprenderá a colocar ícones para tipos diferentes de links.<span id="more-103"></span></p>
<p>Seletores de atributos e operadores</p>
<p>Os seletores de atributos são escritos entre colchetes &#8220;[]&#8220;.<br />
Exemplo: a[href='manual.pdf']</p>
<p>Este exemplo é interessante mas não tão útil, pois neste caso o estilo só será aplicado ao link com o atributo href=&#8217;manual.pdf&#8217;.</p>
<p>Para tornar o uso mais interessante vamos utilizar $ que é um operador que significa &#8220;termina com&#8221;.<br />
Desta forma podemos criar um seletor para estilizar todos os links para arquivos PDF.<br />
Exemplo: a[href$='.pdf']</p>
<p>Você também pode utilizar o operador ^, que significa &#8220;começa com&#8221; e o operador * que busca a ocorrência do valor em qualquer parte do atributo.<br />
Complicou? Veja os exemplos:</p>
<p>Busca todos os links que iniciam com &#8216;http:&#8217;<br />
a[href^='http:']<br />
Busca todos os links que iniciam com &#8216;mailto:&#8217;<br />
a[href^='mailto:']</p>
<p>Busca todos os links que contenham a palavra &#8216;css&#8217;<br />
a[href*='css']</p>
<p>Para finalizar veja este exemplo de estilização de links para documentos PDF, MDB e XLS</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">a[href$='.pdf'] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(doc_pdf.png) center left no-repeat;
}
a[href$='.mdb'] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(doc_access.png) center left no-repeat;
}
a[href$='.xls'] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(doc_excel_table.png) center left no-repeat;
}</pre></div></div>

<p><a title="Exemplo" href="http://www.juliobitencourt.com/exemplos/estilizando_links_com_seletores_css.html" target="_self">Clique aqui</a> para ver o exemplo em funcionamento</p>
<p>Vale lembrar que estes seletores fazem parte do CSS 3. Embora o CSS 3 ainda não esteja totalmente incorporado aos navegadores<br />
os exemplos colocados aqui funcionaram nos browsers mais recentes (IE7, IE8, Firefox3, Chrome e Safari 4).<br />
Em browsers antigos, como o IE6 por exemplo, o ícone simplesmente não aparece o que não causa um prejuízo muito grande a navegação.</p>
<p>Artigo baseado no original <a title="Artigo original" href="http://rafeekphp.wordpress.com/2009/06/11/auto-matic-link-icons/" target="_blank">http://rafeekphp.wordpress.com/2009/06/11/auto-matic-link-icons/</a></p>
<p>Referência de seletores CSS 2.1<br />
<a href="http://maujor.com/tutorial/seletores_css21_parte1.php" target="_blank">http://maujor.com/tutorial/seletores_css21_parte1.php</a></p>
<p>Referência de seletores CSS 3<br />
<a title="CSS3 Selectors" href="http://www.w3.org/TR/css3-selectors/" target="_blank">http://www.w3.org/TR/css3-selectors/</a><br />
<h3 class='related_post_title'>Já que chegou até aqui, que tal ler isto?</h3>
<ul class='related_post'>
<li><a href='http://www.juliobitencourt.com/2009/08/metodo-data-da-jquery/' title='Método data() da jQuery'>Método data() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-live-da-jquery/' title='Função live() da jQuery'>Função live() da jQuery</a></li>
<li><a href='http://www.juliobitencourt.com/2009/08/funcao-closest-da-jquery/' title='Função closest() da jQuery'>Função closest() da jQuery</a></li>
</ul>


<!-- Begin TwitThis script (http://twitthis.com/) -->
<div style="text-align:left;">
<script type="text/javascript" src="http://s3.chuug.com/chuug.twitthis.scripts/twitthis.js"></script>
<script type="text/javascript">
<!--
document.write('<a href="javascript:;" onclick="TwitThis.pop();"><img src="http://s3.chuug.com/chuug.twitthis.resources/twitthis_grey_72x22.gif" alt="TwitThis" style="border:none;" /></a>');
//-->
</script>
</div>
<!-- /End -->

<!-- boo-widget start -->
					<script type="text/javascript">
					bb_keywords = "web standards";
					bb_bid  = "";
					bb_lang  = "";
					bb_name = "custom";bb_limit = "7";bb_format = "bbc";</script>
					<script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
					<!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://www.juliobitencourt.com/2009/06/estilizando-links-com-seletores-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
