<?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>Felipe de Albuquerque &#187; javaScript</title>
	<atom:link href="http://www.felipealbuquerque.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.felipealbuquerque.com</link>
	<description>Front-End Engineer &#38; Designer / Web Designer / Web Developer</description>
	<lastBuildDate>Wed, 25 Aug 2010 21:36:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Menu Drop Down com jQuery</title>
		<link>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/</link>
		<comments>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 18:48:48 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[javaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Menu dropDown]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=448</guid>
		<description><![CDATA[Vou descrever um menu drop down feito com XHTML, CSS e jQuery que ficará assim. É muito simples e os arquivos estão aqui. Este menu irá utilizar um método de evento do mouse &#8220;hover&#8221; e não permite navegação através de teclado, por tantanto ele não é acessível, mas caso seu objetivo seja um menu inclusivo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-478" title="Menu Com jQuery" src="http://www.felipealbuquerque.com/wp-content/uploads/2010/03/MenuComjQuery.jpg" alt="Menu Com jQuery" width="640" height="159" /><br />
Vou descrever um menu drop down feito com XHTML, CSS e jQuery que <a title="Ver o menu funcionando" href="../downloads/Menu-Drop-Down-com-jQuery-FelipeAlbuquerque" target="_blank">ficará assim.</a><br />
É muito simples e <a title="Baixar os arquivos do menu" href="../downloads/Menu-Drop-Down-com-jQuery-FelipeAlbuquerque.rar" target="_blank">os  arquivos estão aqui.</a></p>
<p>Este menu irá utilizar um método de evento do mouse &#8220;<a title="Ler a referência no  site oficial do jQuery" href="http://api.jquery.com/hover/" target="_blank">hover</a>&#8221; e não permite navegação através de teclado, por tantanto ele não é acessível, mas caso seu objetivo seja um menu inclusivo leia um outro post onde eu descrevo um <a title="Ler o post sobre menu acessível" href="http://www.felipealbuquerque.com/2009/10/19/menu-drop-down-acessivel/" target="_self">menu drop down acessível</a>.</p>
<p>Primeiro vou criar o documento de marcação para o menu, que no caso será o XHTML.</p>
<pre><code>
&lt;div id="menu"&gt;&lt;span&gt;&lt;/span&gt;

   &lt;ul&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 1&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 2&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 3&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 4&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;a href="#"&gt;Item 5&lt;/a&gt;
         &lt;ul&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 1&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 2&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="#"&gt;sub 3&lt;/a&gt;&lt;/li&gt;
         &lt;/ul&gt;
      &lt;/li&gt;
   &lt;/ul&gt;
&lt;span class="right"&gt;&lt;/span&gt;&lt;/div&gt;
</code></pre>
<p>Agora que os nós do menu estão feitos,  formato ele utilizando CSS.</p>
<pre><code>*{margin:0;padding:0}<span>//um reset básico, pra gente poder controlar melhor a página</span>
<span>//Os códigos CSS a baixo podem variar bastante, depende da sua necessidade e criatividade</span>
#menu{background:url(../Images/bg-menu.jpg) repeat-x; height:37px; width:80%; margin:20px auto}
#menu span{height:37px; width:5px; background:url(../Images/bg-menu-esq.jpg) no-repeat; float:left;}
#menu span.right{background:url(../Images/bg-menu-dir.jpg) no-repeat; float:right;}
#menu ul{position:relative;z-index:2;}
#menu li{float:left; list-style:none; display:inline;}
#menu a{text-decoration:none;display:block; font-size:12px; font-family:Arial;color:#000; padding:10px;}
#menu a:hover{text-decoration:none}
#menu ul li ul{position:absolute;z-index:1;background:#f5f8fd url(../Images/bg-sub-menu.jpg) repeat-x !important;border:1px solid #cfd7ea;border-top:none;
	-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;
	-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;}
#menu ul li ul li{float:none;display:block;padding:0 10px !important; border-top:1px solid #dbe2ec;}
#menu ul li ul li:hover{background:#e2ecf8;color:#26156E;}

</code></pre>
<p>Agora vamos ao que interessa, o jQuery</p>
<pre><code>
<span>/**
 * @author Felipe
 *Se for usar me avisa e comenta o post <img src='http://www.felipealbuquerque.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
 */
</span>
$(document).ready(function(){

    $("ul li ul").hide();<span>//aqui eu escondo as ul´s que forem filhas de li.</span>
    $("ul li").hover(function(){<span>//O método hover recebe dois parametros que são duas funções.</span>
        $(this).find("ul:first").slideDown("slow"); <span>//aqui você faz o que quiser quando o mouse estiver em cima</span>

    }, function(){
        $(this).find("ul:first").slideUp("slow"); <span>//aqui é como se fosse o callback e você também faz o que quiser.</span></code></pre>
<p>O jQuery como você pode ver, é o arquivo mais simples e com poucas linhas de código.</p>
<p>Utilizamos o método hover que recebe dois parâmetros, que é referente a dois estados do mouse, o mouse hover e mouse down.  Em jQuery esse método pode receber duas funções como parâmetros, que é o que fizemos e após eu utilizo o <em>this</em> pra referenciar ao elemento que está sendo acionado e com o <a title="Ler a referência no site oficial do jQuery" href="http://api.jquery.com/find/" target="_blank"><em>find</em></a> peço pra ele procurar naquele elemento o elemento filho, no caso o primeiro ul que existir e por fim faço o <a title="Ler a referência no site oficial do jQuery" href="http://api.jquery.com/slideDown/" target="_blank">slideDown</a> e Up.<br />
Escolhi esconder o ul filho de li “o sub-menu” com o jQuery, por que se o javaScript estiver desabilitado ou por algum motivo não estiver funcionando, o usuário poderá ver o menu pois ele ficará aberto, se você optar em esconder o menu inicialmente com o CSS o seu menu poderá ficar inutilizável.</p>
<p>Essa foi uma demonstração de um menu simples e bem interessante, porém o jQuery tem plugns incríveis e se você quiser implementar um super menu, você poderá instalar algum plugin, como alguns que vou listar.</p>
<ul>
<li><a title="Ir ao site do plugin, superfish" href="http://users.tpg.com.au/j_birch/plugins/superfish/#examples" target="_blank">Superfish</a></li>
<li><a title="Ir ao site do plugin" href="http://www.filamentgroup.com/lab/jquery_ipod_style_drilldown_menu/" target="_blank">iPod-style Drilldown Menu</a></li>
<li><a title="Ir a página de plugins do jQuery" href="http://plugins.jquery.com/project/Plugins/category/44" target="_self">Plugins de menu no site do jQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2010/03/25/menu-drop-down-com-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Brincando com jQuery</title>
		<link>http://www.felipealbuquerque.com/2010/03/16/brincando-com-jquery/</link>
		<comments>http://www.felipealbuquerque.com/2010/03/16/brincando-com-jquery/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:39:06 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[javaScript]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=397</guid>
		<description><![CDATA[Quem nunca ouviu falar em jQuery?! É uma biblioteca de javaScript que foi feita para simplificar e otimizar a produção no desenvolvimento web, como o próprio slogan do jQuery diz “write less, do more ” faça mais escrevendo menos. Não se trata de uma nova tecnologia, é apenas javaScript assim como mootools e prototype, uma [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-427 aligncenter" title="BrincandoComjQuery" src="http://www.felipealbuquerque.com/wp-content/uploads/2010/03/BrincandoComjQuery.jpg" alt="Brincando com jQuery" /><br />
Quem nunca ouviu falar em jQuery?!<br />
É uma biblioteca de javaScript que foi feita para simplificar e otimizar a produção no desenvolvimento web, como o próprio slogan do jQuery diz “write less, do more ” faça mais escrevendo menos.</p>
<p>Não se trata de uma nova tecnologia, é apenas javaScript assim como mootools e prototype, uma das grandes vantagens em optar por jQuery é a documentação disponível no site oficial, que é bastante completa e os artigos encontrados em fóruns e blogs espalhados na web.</p>
<p>Neste post em especifico eu vou brincar um pouco com o jQuery pra gente sentir um pouco da biblioteca dos deuses.</p>
<p>O primeiro passo é <a title="Ir a página de downloads do jQuery" href="http://docs.jquery.com/Downloading_jQuery" target="_blank">baixar a biblioteca no site oficial</a>, depois chame a biblioteca entre a tag &lt;head&gt; da página que você irá usar as funções do jQuery.</p>
<p><strong>Deverá ficar algo assim:</strong></p>
<pre><code>
&lt;head&gt;

&lt;title&gt;Brincando com jQuery&lt;/title&gt;

&lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt;<span>//js = pasta onde ficará seus arquivos javaScript, isso é você que escolhe onde ficaram os arquivos e o jquery.js é a biblioteca</span>

&lt;/head&gt;</code></pre>
<p><strong>Agora vamos testar se a biblioteca está instalada corretamente: </strong></p>
<pre><code>
&lt;script type="text/javascript"&gt;

$(document).ready(
<span>//Aqui você faz o que quiser útilizando a sintax jQuery ou javaScript puro</span>
function(){
       alert("O jQuery está funcionando e a brincadeira já pode começar!!!");<span>//alert comum com a sintax javaScript</span>

});

&lt;/script&gt;

</code></pre>
<p>Este código espera a página ficar pronta “toda carregada” e após executa uma função que é apenas um alerta normal, com a sintaxe javaScript. Se ao carregar a página com este código e apresentar um alert é porque o jQuery está funcionando e a sua página já compreende a sintaxe jQuery e os métodos e funcionalidades podem ser usadas e isso significa que a brincadeira vai começar a ficar bom agora!</p>
<p>Mas se não funcionou é importante verificar se o caminho que você está chamando está correto ou se há alguma tag escrita incorreta ou sem fechamento, mas de qualquer maneira vou disponibilizar todo código citado aqui.</p>
<p><strong>Uma piada ao getElementById()</strong></p>
<p>O getElementById ficou famoso com a difusão da API DOM e é sem dúvidas um dos métodos mais usados, mas imagina digitar tudo isso umas vinte ou trinta vezes, e em casos extremos, que é necessário chamar esse método várias vezes, me dá tendinite só de pensar, mas com o jQuery isso é tão simples que se torna ridículo, uma verdadeira piada, foi uma das coisas que me chamou a atenção quando eu comecei com o jQuery, isso tudo se resume a “$();”,  $(“id desejado, e não só o id, mas os seletores e classes”), vamos aos exemplos para compreendermos melhor:</p>
<p>O método puro</p>
<pre><code>
<span>Com JavaScript utilizando a API DOM</span>
document.getElementById();
<span>Com a biblioteca dos Deuses</span>
$();
</code></pre>
<p>Manipulando CSS com jQuery</p>
<pre><code>

	$("#meuId").css("color", "red");

</code></pre>
<p>Os elementos de texto que estiverem dentro do id &#8220;meuId&#8221; ficaram com a cor vermelho.</p>
<p>Manipular CSS com a sintaxe de javaScript ficaria algo assim:</p>
<pre><code>
<span>Forma muito usada </span>
      var n = document.getElementById("meuId");
       n.style.color = "red";

<span>Forma otimizada</span>
       document.getElementById("meuId").style.color = "red";

</code></pre>
<p>Os três exemplos fazem a mesma coisa, deixa os elementos de texto do meuid na cor vermelha.</p>
<p><strong>Brincando de pic esconde</strong></p>
<p>Ocultar e mostrar elementos sempre foi algo útil, tanto pra criar sub-menus e tudo que a necessidade do seu cliente mandar.</p>
<p>Fazer isso com jQuery é muito fácil e tem algumas formas interessantes, vamos ver um delas:</p>
<pre><code>
$(document).ready(function(){

	$("#meuId").click(function(){
		$("p").toggle("slow");

	});

});

</code></pre>
<p>HTML</p>
<pre><code>

&lt;body&gt;

         &lt;span id="#meuId"&gt;Clique me!!!&lt;/span&gt; 

         &lt;p&gt;paragrafo 1&lt;/p&gt;

         &lt;p&gt;paragrafo 2&lt;/p&gt;

&lt;/body&gt;

</code></pre>
<p><strong>Ajax virou brincadeira de criança</strong></p>
<p>Para usar o Ajax normalmente é necessário usar uma receitinha de bolo para inicializar o objeto XMLHTTPRequest e ainda por cima fazer um IF se for o IE pra ativar o ActveX, pra funcionar em ambos ou browsers, mas com o jQuery virou outra maravilhosa piada:</p>
<p>Ajax com javaScript</p>
<pre><code>
var Ajax = false;// Ajax

	function AjaxRequest() {
		Ajax = false;
		if (window.XMLHttpRequest) {//Mozilla e safari
			Ajax = new XMLHttpRequest();
		} else if (window.ActiveXObject) {// IE
			try{
				Ajax = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try{
					Ajax = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {

				}
			}

		}
	}
</code></pre>
<p>Ajax com jQuery</p>
<pre style="text-align: center;"><code>
$("#idOndeVaiCarregar").load("pagina.php", callback);
</code></pre>
<p>Acredito que já deu pra brincar um pouco e espero que a leitura tenha sido proveitosa.</p>
<p>As melhores <a title="ler a documentação oficial" href="http://docs.jquery.com/Main_Page">referências de jQuery você poderá achar no site oficial</a>, vale a pena conferir e estudar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2010/03/16/brincando-com-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Contar caracteres com javaScript</title>
		<link>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/</link>
		<comments>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:02:33 +0000</pubDate>
		<dc:creator>Felipe de Albuquerque</dc:creator>
				<category><![CDATA[javaScript]]></category>

		<guid isPermaLink="false">http://www.felipealbuquerque.com/?p=134</guid>
		<description><![CDATA[Existe uma propriedade nativa do JavaScript chamada length que tem a função de contar. A sintaxe é muito fácil “String.length” onde string é o objeto que queremos contar e o length é quem se encarregará pela contagem. Obs: está propriedade também conta espaço em branco. Muito bom pra verificar se a senha foi digitada com [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-144" title="javaScript" src="http://www.felipealbuquerque.com/wp-content/uploads/2009/09/javascript.jpg" alt="javaScript" width="640" height="246" /><br />
Existe uma propriedade nativa do JavaScript chamada length que tem a função de contar.</p>
<p>A sintaxe é muito fácil “String.length” onde string é o objeto que queremos contar e o length é quem se encarregará pela contagem.</p>
<p>Obs: está propriedade também conta espaço em branco. Muito bom pra verificar se a senha foi digitada com espaço em branco.</p>
<p>Vamos ver um exemplo simples.</p>
<pre><code>
&lt;script type="text/javascript" language="javascript"&gt;

   var caracteres = "Felipe não sabe de tudo, mas aprende um pouco a cada dia";

   var contar = caracteres.length;

   alert(contar);

&lt;/script&gt;
</code></pre>
<p>O resultado será um alert com o numero 56, contando com os espaços em branco, que ele interpreta como caracteres.</p>
<p>Agora eu quero que o nosso código varra a variável, e teste se existe a letra “e”, se achar vai informar que achou a letra “e”, senão ele vai dizer que não achou “e”,  e vai mostrar o caractere que achou.</p>
<pre><code>
&lt;script type="text/javascript" language="javascript"&gt;

 var caracteres = "Felipe";

     for(i=0; i&lt; caracteres.length; i++){

        if(caracteres[i] == "e" || caracteres[i] == "E" ){

           alert("Achei o " + caracteres[i]);

        } else {

           alert("Não achei e, encontrei o " + caracteres[i]);

        }

     }

&lt;/script&gt;

</code></pre>
<p>O resultado será uma serie de alerts até a condição ser satisfeita, e todos os caracteres serão contados e testados.</p>
<p>O ideal é trabalhar com DOM, e escrever no documento ao invés de alerts, mas como estamos apenas estudando a propriedade length, escolhi alert, mas você pode escolher um nó ou id do documento e escrever nele, Ex: screver = document.getElementById(&#8220;idOndeVoceQuerEscrever&#8221;).innerHTML = variável + “texto e tags”;</p>
<p>Mas isso é para próximos posts.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 729px; width: 1px; height: 1px;">|| caracteres[i] == E&#8221;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.felipealbuquerque.com/2009/09/30/contar-caracteres-com-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
