<?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>Staicu Ionut Bogdan &#187; jQuery</title>
	<atom:link href="http://blog.iamntz.com/category/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.iamntz.com</link>
	<description>Staicu Ionut Bogdan - Web developer</description>
	<lastBuildDate>Fri, 03 Sep 2010 10:18:23 +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>Întrebări CSS şi jQuery</title>
		<link>http://blog.iamntz.com/2281/intrebari-css-si-jquery.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/2281/intrebari-css-si-jquery.ionut#comments</comments>
		<pubDate>Mon, 25 May 2009 11:07:37 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=2281</guid>
		<description><![CDATA[Răspund la întrebări bune despre CSS şi/sau javascript/jQuery. Poţi întreba lăsând un comentariu. Răspunsul va veni în câteva zile, când se vor strânge câteva întrebări. Posturi cu o oarecare legătură:De ce ai vrea să-ţi ştii viitorul? Fatăh, cât de des te speli? Jamie Oliver Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel Europa [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2564/de-ce-ai-vrea-sa-ti-stii-viitorul.ionut' rel='bookmark' title='Permanent Link: De ce ai vrea să-ţi ştii viitorul?'>De ce ai vrea să-ţi ştii viitorul?</a></li>
<li><a href='http://blog.iamntz.com/2922/fatah-cat-de-des-te-speli.ionut' rel='bookmark' title='Permanent Link: Fatăh, cât de des te speli?'>Fatăh, cât de des te speli?</a></li>
<li><a href='http://blog.iamntz.com/2939/jamie-oliver.ionut' rel='bookmark' title='Permanent Link: Jamie Oliver'>Jamie Oliver</a></li>
<li><a href='http://blog.iamntz.com/2570/comenzi-de-mancare-la-domiciliu-in-constanta.ionut' rel='bookmark' title='Permanent Link: Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel'>Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel</a></li>
<li><a href='http://blog.iamntz.com/3092/europa-libera.ionut' rel='bookmark' title='Permanent Link: Europa Liberă!'>Europa Liberă!</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Răspund la întrebări bune despre CSS şi/sau javascript/jQuery.</p>
<p>Poţi întreba lăsând un comentariu. Răspunsul va veni în câteva zile, când se vor strânge câteva întrebări.</p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2564/de-ce-ai-vrea-sa-ti-stii-viitorul.ionut' rel='bookmark' title='Permanent Link: De ce ai vrea să-ţi ştii viitorul?'>De ce ai vrea să-ţi ştii viitorul?</a></li>
<li><a href='http://blog.iamntz.com/2922/fatah-cat-de-des-te-speli.ionut' rel='bookmark' title='Permanent Link: Fatăh, cât de des te speli?'>Fatăh, cât de des te speli?</a></li>
<li><a href='http://blog.iamntz.com/2939/jamie-oliver.ionut' rel='bookmark' title='Permanent Link: Jamie Oliver'>Jamie Oliver</a></li>
<li><a href='http://blog.iamntz.com/2570/comenzi-de-mancare-la-domiciliu-in-constanta.ionut' rel='bookmark' title='Permanent Link: Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel'>Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel</a></li>
<li><a href='http://blog.iamntz.com/3092/europa-libera.ionut' rel='bookmark' title='Permanent Link: Europa Liberă!'>Europa Liberă!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/2281/intrebari-css-si-jquery.ionut/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery VII &#8211; manipulare DOM &amp; Live events</title>
		<link>http://blog.iamntz.com/2030/tutorial-jquery-vii-manipulare-dom-live-events.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/2030/tutorial-jquery-vii-manipulare-dom-live-events.ionut#comments</comments>
		<pubDate>Thu, 05 Feb 2009 21:29:42 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=2030</guid>
		<description><![CDATA[În afară de toate efectele drăguţe de care este capabil, jQuery mai ştie şi alte lucruri mult mai importante şi utile. Printre acestea sunt funcţiile de manipulare a DOM-ului. Prin manipularea DOM (Document Object Model) se poate modifica structura paginii parţial sau chiar în totalitate. Astfel, putem adăuga, şterge sau copia elemente în funcţie de [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2666/probleme-cu-jucaria.ionut' rel='bookmark' title='Permanent Link: Probleme cu jucăria'>Probleme cu jucăria</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>În afară de toate efectele drăguţe de care este capabil, jQuery mai ştie şi alte lucruri mult mai importante şi utile. Printre acestea sunt funcţiile de <a href="http://docs.jquery.com/Manipulation">manipulare a DOM-ului</a>. </p>
<p>Prin manipularea DOM (Document Object Model) se poate modifica structura paginii parţial sau chiar în totalitate. Astfel, putem adăuga, şterge sau copia elemente în funcţie de necesităţi. Utilizare practică: AJAX, galerii de genul lightbox, drag&amp;drop, etc. Pentru a demonstra cum funcţionează câteva din funcţiile de manipulare a DOM, am făcut un mic exemplu în care elementele sunt adăugate dinamic, după încărcarea paginii. Codul HTML iniţial este următorul:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;ul class=&quot;clearfix&quot; id=&quot;manipulation&quot;&gt;&lt;/ul&gt;
&lt;ul id=&quot;status&quot;&gt;&lt;/ul&gt;</pre></div></div>

<p>Adăugăm în prima listă cinci elemente (a doua listă este un fel de consolă care &#8211; la click &#8211; ne arată câte elemente conţine prima listă):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript 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>0;i<span style="color: #339933;">&amp;</span>lt;<span style="color: #CC0000;">5</span>;i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#manipulation'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Apoi, pentru fiecare <code>LI</code> adăugăm un <code>span</code> la mouseover şi îl ştergem la mouseout. Desigur, puteam să-l arătăm/ascundem, dar am vrut doar să arăt cam cum funcţionează manipularea. De asemenea, la click, se va injecta un alt <code>LI</code> imediat după elementul curent. Toate event-urile sunt live (voi explica un pic mai jos care e treaba cu ele) :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#manipulation'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li:not(span)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span>document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;a href=&quot;#&quot;&gt;x&lt;/a&gt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">insertAfter</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: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">500</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseover'</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;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;span&gt;CLICK!&lt;/span&gt;'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'mouseout'</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;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'span'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></td></tr></table></div>

<p><span id="more-2030"></span><br />
Adăugăm şi un event la <code>#status</code> ce ne arată la click câte elemente sunt în prima listă:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#status'</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;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;li&gt;Elemente în listă: '</span><span style="color: #339933;">+</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#manipulation'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'&lt;/li&gt;'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></td></tr></table></div>

<p><a href="http://iamntz.com/experiments/tutorial-jquery/manipulation/index.html"><img alt="Încearcă şi tu!" src="http://www.iamntz.com/demo.jpg"/></a></p>
<h3>Live events</h3>
<p>Un aspect important al elementelor modificate după încărcarea paginii îl reprezintă evet-urile. Sau, mai bine spus, nepropagarea acestora. Exemplu:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;ul&gt;
	&lt;li&gt;Element listă&lt;/li&gt;
	&lt;li&gt;Element listă&lt;/li&gt;
	&lt;li&gt;Element listă&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;#&quot;&gt;Adaugă element&lt;/a&gt;</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</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: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ai făcut click pe elementul nr.'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ul li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</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: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</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: #3366CC;">'ul'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;li&gt;Element listă nou&lt;/li&gt;'</span><span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// adaugăm un element nou, la sfârşitul listei</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p><a href="http://iamntz.com/experiments/tutorial-jquery/manipulation/1.html"><img alt="Încearcă şi tu!" src="http://www.iamntz.com/demo.jpg"/></a><br />
Va funcţiona doar pentru elementele existente la încărcarea paginii. Elementele adăugate ulterior nu vor avea niciun event. Până la versiunea 1.3 a jQuery, existau două soluţii:</p>
<p>1) re-binduirea event-ului. Asta presupunea <code>unbind</code> pentru eventurile existente pe elemente => timpi mari de execuţie<br />
2) folosirea plugin-ului &#8216;livequery&#8217;.</p>
<p>În versiunea 1.3 a jQuery pluginul sus amintit a fost integrat în librărie (la fel cum s-a întâmplat şi cu dimension plugin). Astfel, codul de mai sus devine:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</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: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ai făcut click pe elementul nr.'</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ul li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</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: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</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: #3366CC;">'ul'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">prepend</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;li&gt;Element listă nou&lt;/li&gt;'</span><span style="color: #009900;">&#41;</span>; <span style="color: #006600; font-style: italic;">// adaugăm un element nou, la sfârşitul listei</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></td></tr></table></div>

<p><a href="http://iamntz.com/experiments/tutorial-jquery/manipulation/2.html"><img alt="Încearcă şi tu!" src="http://www.iamntz.com/demo.jpg"/></a></p>
<p>Funcţia <code>live</code> funcţionează la fel ca funcţia <code>bind</code> cu câteva diferenţe:</p>
<ul>
<li>Event-urile disponibile sunt: click, dblclick,  mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup</li>
<li>Event-urile sunt &#8220;bind-uite&#8221; pentru toate elementele, inclusiv cele ce se adaugă ulterior în DOM</li>
<li>Event-urile live nu se propagă ca şi cele clasice, astfel încât e.stopPropagation() nu funcţionează*</li>
</ul>
<p>*Fiind o funcţie nouă în jQuery 1.3, nu este documentată suficient iar livequery am folosit doar ocazional. Şi cum nici nu am avut problema asta şi nici nu există o soluţie în manual, nu ştiu cum s-ar putea rezolva. Cel puţin pentru moment.</p>
<p>Următorul tutorial este despre&#8230; AJAX <img src='http://blog.iamntz.com/wp-includes/images/smilies/biggrin.gif' alt=':D' class='wp-smiley' />  Va urma&#8230; Nu ştiu când. Probabil în una-două săptămâni.</p>
<div class="nb">
<h2>IMPORTANT!</h2>
<p>M-ar ajuta foarte mult dacă primesc feedback de la începători. Vreau să ştiu dacă explic bine şi pe înţelesul tuturor, deoarece, având o oarecare experienţă îmi este destul de greu să-mi dau seama cât de accesibil este începătorilor.</p>
</div>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2666/probleme-cu-jucaria.ionut' rel='bookmark' title='Permanent Link: Probleme cu jucăria'>Probleme cu jucăria</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/2030/tutorial-jquery-vii-manipulare-dom-live-events.ionut/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery VI &#8211; Exemplu practic</title>
		<link>http://blog.iamntz.com/1942/tutorial-jquery-vi-exemplu-practic.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1942/tutorial-jquery-vi-exemplu-practic.ionut#comments</comments>
		<pubDate>Mon, 12 Jan 2009 20:46:41 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1942</guid>
		<description><![CDATA[Reîncepem seria de tutoriale despre jQuery dar, din cauza timpului liber inexistent se vor rări ca frecvenţă, dar voi încerca să compensez prin cantitatea de informaţie oferită. Ca exemplu practic îţi voi arăta cum poţi face un meniu de genul suckerfish vertical cu submeniuri. Tutorialul conţine atât ce am „predat” până acum cât şi câte [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2558/nfs-shift-keyboard-issue.ionut' rel='bookmark' title='Permanent Link: NFS Shift Keyboard Issue'>NFS Shift Keyboard Issue</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Reîncepem seria de tutoriale despre jQuery dar, din cauza timpului liber inexistent se vor rări ca frecvenţă, dar voi încerca să compensez prin cantitatea de informaţie oferită.</p>
<p>Ca exemplu practic îţi voi arăta cum poţi face un meniu de genul <a href="http://www.alistapart.com/articles/dropdowns">suckerfish</a> vertical cu submeniuri. Tutorialul conţine atât ce am „predat” până acum cât şi câte ceva din ceea ce va urma.</p>
<p>Codul HTML nu conţine altceva decât o listă neordonată (<code>UL</code>) ce nu cred că are rost să o explic:</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
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;ul id=&quot;meniu&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Prima pagină&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Despre noi&lt;/a&gt;
		&lt;ul&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Ce facem&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Ce nu facem&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Cum facem&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;
		&lt;ul&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Feedback&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;FAQ&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>


<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
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#meniu {
	border-top:1px solid #ccc;
	margin:50px;
	width:10em;
	font-family:Arial, Verdana, Sans-serif;
}
	#meniu li {
		position: relative;
		width:10em;
		border: 1px solid #ccc;
		border-top:none;
		list-style:none;
		background-color:#fff;
	}</pre></td></tr></table></div>

<p>În cele ce urmează afişăm doar primul nivel al listei, restul find ascuse.</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="css" style="font-family:monospace;">#meniu li ul {
	position: absolute;
	left:9.5em;
	top:.2em;
	border-top:1px solid #ccc;
	z-index: 2;
	display:none;
}</pre></td></tr></table></div>

<p><span id="more-1942"></span><br />
Afişăm nivelul doi al listei (adică submeniul). Dacă <code>#meniu</code> are clasa <code>.ready</code>, nivelul doi rămâne ascuns :</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="css" style="font-family:monospace;">#meniu li:hover ul {
	display:block;
}
#meniu.ready li:hover ul {
	display:none;
}
	#meniu li a {
		display:block;
		line-height:24px;
		padding:0 5px;
		color:#686d8a;
		font-size:.8em;	
		font-weight:700;
		text-decoration:none;
		outline:none;
	}
		#meniu li a:hover {
			color:#000	
		}
#meniu .arrow {
	background:url(niceMenuArrow.png) no-repeat 90% center;
}</pre></td></tr></table></div>

<p>La toate elementele ce au submeniu adăugăm o săgeată (să dea bine):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">#meniu .arrow {
	background:url(niceMenuArrow.png) no-repeat 90% center;
}</pre></td></tr></table></div>

<p>Până în acest moment, meniul funcţionează corespunzător fără pic de javascript (mai puţin pe IE6; rezolvarea pentru acesta se face strict cu JS):</p>
<p><a href="http://iamntz.com/experiments/tutorial-jquery/exemplul2/"><img src="http://farm4.static.flickr.com/3422/3191559719_7cb3883e95.jpg" alt="Tutorial jQuery - Exemplu" /></a></p>
<p>În continuare urmează&#8230; „magia”:</p>
<p>Adăugăm clasa <code>.arrow</code> pentru elementele ce conţin submeniuri:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#meniu li ul'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'arrow'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>După care adăugăm clasa <code>.ready</code> pentru a elimina „efectele” pseudoclasei <code>:hover</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#meniu'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ready'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>După aceşti doi paşi, restul este&#8230; fantezie (cum spuneau Ţapinarii):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#meniu &gt; li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hover</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;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ul'</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: #009900;">&#125;</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;">find</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ul'</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: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Desigur, poţi folosi orice efect (slide, animate, etc) în locul <code>fadeIn()</code>. Poţi folosi <code>fadeIn()</code> combinat cu <code>slideUp()</code>, de exemplu.</p>
<p><a href="http://iamntz.com/experiments/tutorial-jquery/exemplul2/"><img alt="Încearcă şi tu!" src="http://www.iamntz.com/demo.jpg"/></a></p>
<div class="nb">
<h2>IMPORTANT!</h2>
<p>M-ar ajuta foarte mult dacă primesc feedback de la începători. Vreau să ştiu dacă explic bine şi pe înţelesul tuturor, deoarece, având o oarecare experienţă îmi este destul de greu să-mi dau seama cât de accesibil este începătorilor.</p>
</div>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2558/nfs-shift-keyboard-issue.ionut' rel='bookmark' title='Permanent Link: NFS Shift Keyboard Issue'>NFS Shift Keyboard Issue</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1942/tutorial-jquery-vi-exemplu-practic.ionut/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery &#8211; V &#8211; Efecte</title>
		<link>http://blog.iamntz.com/1872/tutorial-jquery-v-efecte.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1872/tutorial-jquery-v-efecte.ionut#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:00:06 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1872</guid>
		<description><![CDATA[După ce am văzut cum funcţionează selectorii şi event-urile în jQuery, putem trece la pasul următor: efectele. Mulţi folosesc o librărie JS (jQuery, Prototype sau orice altceva) aproape exclusiv pentru efecte. jQuery include câteva efecte simple dar majoritatea sunt doar variaţii ale unei singure funcţii: animate(). Toate efectele au un parametru pentru o funcţie callback. [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2710/2012.ionut' rel='bookmark' title='Permanent Link: 2012'>2012</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>După ce am văzut cum funcţionează selectorii şi event-urile în jQuery, putem trece la pasul următor: efectele. Mulţi folosesc o librărie JS (jQuery, Prototype sau orice altceva) aproape exclusiv pentru efecte.</p>
<p>jQuery include câteva efecte simple dar majoritatea sunt doar variaţii ale unei singure funcţii: <code>animate()</code>. Toate efectele au un parametru pentru o funcţie callback. Efectele built-in sunt:</p>
<ul>
<li><code>show()</code> / <code>hide()</code> -  folosite fără niciun parametru doar schimbă <code>display:none</code> în <code>display:block</code> sau <code>display:inline</code> (în funcţie de tipul elementului) şi invers. Cu un parametru numeric (ex: <code>$('div').show(500)</code> ) va genera un efect de redimensionare şi transparenţă de durată 500 ms;</li>
<li><code>slideUp()</code> / <code>slideDown()</code> &#8211; ascunde/arată un element printr-un efect de „alunecare”. Acceptă ca parametrii: durată, callback şi easing (nu ştiu cum aş putea traduce asta, dar voi explica mai jos ce face);</li>
<li><code>toggle()</code> / <code>slideToggle()</code> &#8211; dacă un element este vizibil îl ascunde şi viceversa. La fel ca la exemplul anterior, poţi specifica durata şi o funcţie callback;</li>
<li><code>fadeIn()</code> / <code>fadeOut()</code> &#8211; schimbă opacitatea unui element şi îi setează <code>display:block</code> / <code>display:none</code>. Parametrii: durată şi callback;</li>
<li><code>fadeTo(durata, opacitate, callback)</code> &#8211; schimbă opacitatea unui element fără a-i afecta vizibilitatea. Spre deosebire de <code>fadeOut()</code>, <code>fadeTo(300, 0)</code> doar setează opacitatea la 0, fără a ascunde elementul. Este asemănător cu  <code>display:none</code> VS. <code>visibility:hidden</code>.</li>
</ul>
<h3>Explicaţii</h3>
<ul>
<li>funcţia callback rulează după ce efectul este terminat şi arată cam aşa:

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">500</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: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ascuns'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>desigur, se poate folosi şi combinaţia:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> callback <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: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Ascuns'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">500</span><span style="color: #339933;">,</span> callback<span style="color: #009900;">&#41;</span></pre></div></div>

</li>
<li>Easing &#8211; reprezintă un calcul matematic ce adaugă un&#8230; efect la efect. În cazul în care animaţia vrei să se desfăşoare liniar (cu aceeaşi viteză de la început până la sfârşit), nu ai nevoie de aşa ceva. În schimb, dacă vrei ca un slideUp să înceapă brusc şi să se termine încet, poate ar trebui să foloseşti <a href="http://gsgd.co.uk/sandbox/jquery/easing/">plugin-ul </a>ce adaugă ceva opţiuni în plus (pe lângă liniar şi swing, disponibile implicit). Acesta, pe baza unor formule matematice (scrise într-o limbă complet necunoscută mie) îţi adaugă o multitudine de opţiuni. Pe pagina sus amintită vei găsi o listă cu toate opţiunile.</li>
</ul>
<h3>Efecte custom</h3>
<p>Astea sunt cele mai drăguţe deoarece singura limită ţine de imaginaţia fiecăruia. Ce se poate anima? Păi&#8230; Cam orice proprietate CSS în afară de z-index (IE face figuri). Atenţie însă, dacă vrei să schimbi poziţia unui element, nu uita să-l poziţionezi absolut mai întâi! Dimensiunile sunt specificate în pixeli dar, dacă le pui în ghilimele, poţi specifica unitatea de măsură preferată.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p:eq(0)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>position<span style="color: #339933;">:</span><span style="color: #3366CC;">'absolute'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
	bottom<span style="color: #339933;">:</span>0<span style="color: #339933;">,</span>
	fontSize<span style="color: #339933;">:</span><span style="color: #3366CC;">'2em'</span><span style="color: #339933;">,</span>
	opacity<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.5</span><span style="color: #339933;">,</span>
	left<span style="color: #339933;">:</span>	<span style="color: #3366CC;">'50%'</span><span style="color: #339933;">,</span>
	width<span style="color: #339933;">:</span><span style="color: #3366CC;">'50%'</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1500</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'swing'</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: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Animat!'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Poţi încerca diverse efecte folosind consola în pagina demo:<br />
<a href="http://iamntz.com/experiments/tutorial-jquery/base.html"><img src="http://www.iamntz.com/demo.jpg" alt="Încearcă şi tu!" /></a></p>
<h3>Mai multe efecte!</h3>
<p>Dacă nu îţi place/nu ai timp/chef să experimentezi (sau orice alt motiv) poţi încerca <a href="http://ui.jquery.com/">jQuery UI</a>. Este o librărie asemănătoare scriptaculous ce adaugă câteva funcţionalităţi mai deosebite pentru jQuery: drag&amp;drop, mai multe efecte, slidere, datepicker, etc. <a href="http://ui.jquery.com/repository/real-world/effects/">Aici ai demo cu efectele</a> jQuery UI.</p>
<h3>Ce urmează?</h3>
<p>Momentan o pauză de o săptămână-două, după care voi reveni cu un exemplu practic cu ce am învăţat până acum şi un  tutorial despre cum putem modifica DOM-ul cu jQuery. Nu uita să alegi ce <a href="http://blog.iamntz.com/1850/tutorial-jquery-alegerea-exemplului-final.ionut">tutorial </a>vrei să fie exemplul final!</p>
<div class="nb">
<h2>IMPORTANT!</h2>
<p>M-ar ajuta foarte mult dacă primesc feedback de la începători. Vreau să ştiu dacă explic bine şi pe înţelesul tuturor, deoarece, având o oarecare experienţă îmi este destul de greu să-mi dau seama cât de accesibil este începătorilor.</p></div>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2710/2012.ionut' rel='bookmark' title='Permanent Link: 2012'>2012</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1872/tutorial-jquery-v-efecte.ionut/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery &#8211; alegerea exemplului final</title>
		<link>http://blog.iamntz.com/1850/tutorial-jquery-alegerea-exemplului-final.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1850/tutorial-jquery-alegerea-exemplului-final.ionut#comments</comments>
		<pubDate>Sat, 20 Dec 2008 17:12:39 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1850</guid>
		<description><![CDATA[Nu, nu este vorba despre un tutorial. După ce terminăm un crash-course în jQuery, facem o mică aplicaţie. Problema este că nu ştiu cam ce ar fi interesant pentru cursanţii mei (moah, cum sună ), aşadar m-am gândit să fac un poll. Am pus câteva variante, dar dacă alegerea ta nu se regăseşte în listă, [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2570/comenzi-de-mancare-la-domiciliu-in-constanta.ionut' rel='bookmark' title='Permanent Link: Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel'>Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel</a></li>
<li><a href='http://blog.iamntz.com/2971/scurte-da-scurte-rau.ionut' rel='bookmark' title='Permanent Link: Scurte. Da&#8217; scurte rău!'>Scurte. Da&#8217; scurte rău!</a></li>
<li><a href='http://blog.iamntz.com/2707/o-%c8%99ansa.ionut' rel='bookmark' title='Permanent Link: O șansă'>O șansă</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Nu, nu este vorba despre un tutorial. După ce terminăm un crash-course în jQuery, facem o mică aplicaţie. Problema este că nu ştiu cam ce ar fi interesant pentru cursanţii mei (moah, cum sună <img src='http://blog.iamntz.com/wp-includes/images/smilies/lmaosmiley.gif' alt=':w00t:' class='wp-smiley' />  ), aşadar m-am gândit să fac un poll. Am pus câteva variante, dar dacă alegerea ta nu se regăseşte în listă, adaugă într-un comentariu.</p>
<p>[poll id="5"]</p>
<p>Cam toate aplicaţiile conţin efecte, ajax, modificare DOM, etc, deci toate sunt destul de avansate pentru a uni toate cunoştinţele asimilate într-un singur exemplu.</p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2570/comenzi-de-mancare-la-domiciliu-in-constanta.ionut' rel='bookmark' title='Permanent Link: Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel'>Comenzi de mâncare la domiciliu în Constanţa &#8211; The sequel</a></li>
<li><a href='http://blog.iamntz.com/2971/scurte-da-scurte-rau.ionut' rel='bookmark' title='Permanent Link: Scurte. Da&#8217; scurte rău!'>Scurte. Da&#8217; scurte rău!</a></li>
<li><a href='http://blog.iamntz.com/2707/o-%c8%99ansa.ionut' rel='bookmark' title='Permanent Link: O șansă'>O șansă</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1850/tutorial-jquery-alegerea-exemplului-final.ionut/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery IV &#8211; Exemplu practic</title>
		<link>http://blog.iamntz.com/1834/tutorial-jquery-4-exemplu-practic.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1834/tutorial-jquery-4-exemplu-practic.ionut#comments</comments>
		<pubDate>Wed, 17 Dec 2008 12:31:54 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1834</guid>
		<description><![CDATA[După ce în primele două părţi (de fapt prima şi a treia parte) am arătat cum se folosesc selectorii şi event-urile, m-am gândit că ar fi bine totuşi să arăt două mici exemple despre cum se poate folosi ce am învăţat până acum (şi ceva în plus). 1.Link-uri deschise în altă fereastră Dacă ţii neapărat [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2603/quick-tip-pentru-yahoo-messenger.ionut' rel='bookmark' title='Permanent Link: Quick Tip pentru Yahoo! Messenger'>Quick Tip pentru Yahoo! Messenger</a></li>
<li><a href='http://blog.iamntz.com/2621/ipocrizie-la-maxim-da-e-o-realitate.ionut' rel='bookmark' title='Permanent Link: Ipocrizie. La maxim. Da, e o realitate&#8230;'>Ipocrizie. La maxim. Da, e o realitate&#8230;</a></li>
<li><a href='http://blog.iamntz.com/2737/voteaza.ionut' rel='bookmark' title='Permanent Link: Votează!'>Votează!</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
<li><a href='http://blog.iamntz.com/2971/scurte-da-scurte-rau.ionut' rel='bookmark' title='Permanent Link: Scurte. Da&#8217; scurte rău!'>Scurte. Da&#8217; scurte rău!</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>După ce în primele două părţi (de fapt prima şi a treia parte) am arătat cum se folosesc selectorii şi event-urile, m-am gândit că ar fi bine totuşi să arăt două mici exemple despre cum se poate folosi ce am învăţat până acum (şi ceva în plus).</p>
<h2>1.Link-uri deschise în altă fereastră</h2>
<p>Dacă ţii neapărat la corectitudinea codului tău şi îl vrei XHTML 1.0 strict sau XHTML 1.1, vei observa că atributul <code>target="_blank"</code> nu mai este valid. Există două abordări:</p>
<p><strong>rel=&#8221;external&#8221;</strong></p>
<p>Cea mai exactă metodă ce îţi permite un control sporit asupra link-urilor este adăugarea atributului <code>rel="external"</code> în interiorul link-ului. Astfel, din <code>&lt;a href="#"&gt; ancoră &lt;/a&gt;</code> vei avea <code>&lt;a rel="external" href="#"&gt; ancoră &lt;/a&gt;</code>. Apoi, codul jQuery:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript 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;">'a[rel^=external]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'target'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'_blank'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Folosind un selector xPath (de care am amintit sumar în primul episod), adăugăm atributul <code>target="_blank"</code> după încărcarea paginii. Fiind inserate dinamic, codul rămâne valid în continuare. Selectorul s-ar traduce aşa: „orice link ce are atributul <code>rel</code> iar valoarea acestuia începe cu <code>external</code>”.</p>
<p><strong>Toate link-urile externe</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript 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[@href^=http]&quot;</span><span style="color: #009900;">&#41;</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;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">href</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span>location.<span style="color: #660066;">hostname</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</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;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'target'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'_blank'</span><span style="color: #009900;">&#41;</span>;
      <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Această metodă este mult mai simplă şi implică şi puţin javascript dar TOATE link-urile externe se vor deschide într-o fereastră nouă. În cazul în care vrei ca un link să nu se deschidă în altă fereastră&#8230; Nu prea ai ce face.</p>
<p>Totuşi, părerea mea este că tu (ca programator) nu ai niciun drept de a-ţi impune preferinţele peste cele ale user-ului. Acesta poate folosi ctrl+click, middle click (sau ce alte metode mai sunt în alte browsere) pentru a deschide un link într-o nouă fereastră/tab. În acest sens, îţi recomand să citeşti <a href="http://www.smashingmagazine.com/2008/07/01/should-links-open-in-new-windows/">acest articol</a>.</p>
<h2>2.Icon-uri pentru fişiere</h2>
<p>Dacă ai fişiere pentru download pe site (pdf, mp3, doc, zip, etc) poţi adăuga un icon în dreptul fiecărui link. În browsele adevărate (adică tot ce nu este Internet Explorer), acest lucru se poate face simplu, doar cu CSS. Folosind însă acelaşi selector, combinat cu puţin jQuery, îl putem face să funcţioneze corespunzător şi pentru nefericiţii cu IE:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a[href $='</span>.<span style="color: #660066;">doc</span><span style="color: #3366CC;">']'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'doc'</span><span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a[href $='</span>.<span style="color: #660066;">pdf</span><span style="color: #3366CC;">']'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'pdf'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#91;</span>...<span style="color: #009900;">&#93;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a[href $='</span>.<span style="color: #660066;">zip</span><span style="color: #3366CC;">']'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'zip'</span><span style="color: #009900;">&#41;</span>;</pre></td></tr></table></div>

<p>Apoi, în CSS adaugi:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">.doc {background:url(../images/doc.gif) no-repeat left center; padding-left:20px;}
.pdf {background:url(../images/pdf.gif) no-repeat left center; padding-left:20px;}
[...]
.zip {background:url(../images/zip.gif) no-repeat left center; padding-left:20px;}</pre></td></tr></table></div>

<p>Simplu, eficient şi elegant <img src='http://blog.iamntz.com/wp-includes/images/smilies/smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>În zilele următoare va urma un articol despre efecte şi animaţii cu jQuery.</p>
<div class="nb">
<h2>IMPORTANT!</h2>
<p>M-ar ajuta foarte mult dacă primesc feedback de la începători. Vreau să ştiu dacă explic bine şi pe înţelesul tuturor, deoarece, având o oarecare experienţă îmi este destul de greu să-mi dau seama cât de accesibil este începătorilor.</p>
</div>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2603/quick-tip-pentru-yahoo-messenger.ionut' rel='bookmark' title='Permanent Link: Quick Tip pentru Yahoo! Messenger'>Quick Tip pentru Yahoo! Messenger</a></li>
<li><a href='http://blog.iamntz.com/2621/ipocrizie-la-maxim-da-e-o-realitate.ionut' rel='bookmark' title='Permanent Link: Ipocrizie. La maxim. Da, e o realitate&#8230;'>Ipocrizie. La maxim. Da, e o realitate&#8230;</a></li>
<li><a href='http://blog.iamntz.com/2737/voteaza.ionut' rel='bookmark' title='Permanent Link: Votează!'>Votează!</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
<li><a href='http://blog.iamntz.com/2971/scurte-da-scurte-rau.ionut' rel='bookmark' title='Permanent Link: Scurte. Da&#8217; scurte rău!'>Scurte. Da&#8217; scurte rău!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1834/tutorial-jquery-4-exemplu-practic.ionut/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery &#8211; III &#8211; Event-uri</title>
		<link>http://blog.iamntz.com/1810/tutorial-jquery-3-event-uri.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1810/tutorial-jquery-3-event-uri.ionut#comments</comments>
		<pubDate>Mon, 15 Dec 2008 21:59:22 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1810</guid>
		<description><![CDATA[Aşa cum am promis, voi face o scurtă introducere în event-uri. Întâi de toate, trebuie să fac o completare pentru primul articol: Unul din marile avantaje ale jQuery este că majoritatea efectelor/event-urilor suportă chaining (înlănţuire sună aiurea), astfel, cu un singur selector se pot face mai multe lucruri. Altfel spus, cu linia: $&#40;'strong:eq(0)'&#41;.addClass&#40;'rosu'&#41;.css&#40;fontSize, '2em'&#41;.fadeOut&#40;200&#41; Se [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Aşa cum am promis, voi face o scurtă introducere în event-uri. Întâi de toate, trebuie să fac o completare pentru primul articol:</p>
<p>Unul din marile avantaje ale jQuery este că majoritatea efectelor/event-urilor suportă chaining (înlănţuire sună aiurea), astfel, cu un singur selector se pot face mai multe lucruri. Altfel spus, cu linia:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong:eq(0)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rosu'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span>fontSize<span style="color: #339933;">,</span> <span style="color: #3366CC;">'2em'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Se adaugă o clasă, se schimbă dimensiunea fontului şi se schimbă opacitatea.</p>
<p>De asemenea, toate testele sunt făcute în Firefox, tocmai datorită lui Firebug. Dar cum jQuery este o librărie cross browser, nu trebuie să îţi faci niciun fel de problemă despre compatibilitate cu alte browsere.</p>
<p>Acestea fiind spuse, hai să „intrăm în pâine” cu event-urile. Ca orice termen din programare, sună destul de aiurea tradus în română. Aşadar&#8230; nu va fi „evenimente” ci events/event-uri.</p>
<p>Un event îţi permite să setezi o interacţiune dintre utilizator şi pagină. Un click, de exemplu, este un event. La fel şi mouseover, mouseout, keyup, keydown, ş.a.m.d.</p>
<p>Modul de setare pentru un event este foarte simplu şi funcţionează în „spiritul” jQuery : selector CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'h1'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Unele event-uri acceptă un stil ceva mai scurt:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'h1'</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>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p><span id="more-1810"></span><br />
În ambele cazuri observi parametrul <code>e</code>. Acesta îţi oferă acces la câteva variabile:</p>
<p><a href="http://farm4.static.flickr.com/3141/3110860511_e0ae8dc922_o.png"><img class="alignnone" src="http://farm4.static.flickr.com/3141/3110860511_5635dbbae5.jpg?v=0" alt="" width="500" height="494" /></a></p>
<p>Printre cele mai importante valori returnate în cazul unui click sau mouseover sunt <code>pageX</code> şi <code>pageY</code>. Acestea îţi indică poziţia cursorului.</p>
<p>Desigur, acest stil nu funcţionează pentru toate <a href="http://docs.jquery.com/Events">event</a>-urile, ceea ce înseamnă că cel mai sigur să foloseşti metoda cu bind(). De fiecare dată, orice event returnează obiectul <code>this</code>. Acest obiect este fix elementul pe care este stabilit event-ul. În cazul nostru, <code>h1</code>.</p>
<p>Una din setările esenţiale în cazul în care sunt mai multe elemente şi ai event-uri pe fiecare, este stopPropagation(). Se dă codul următor:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Totul funcţionează corespunzător, doar că în momentul când se face click pe <code>strong</code> se declanşează şi event-ul de pe <code>p</code>. Soluţia este, aşa cum am zis, <code>stopPropagation()</code>. Acesta se foloseşte în felul următor:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	e.<span style="color: #660066;">stopPropagation</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Observi că a apărut o nouă comandă: <code>unbind('click')</code>. Aceasta anulează orice alt <code>bind('click')</code> scris anterior. Dacă se foloseşte doar <code>unbind()</code> (fără niciun alt parametru), se anulează orice alt event setat anterior (fie click, fie mouseover, fie orice altceva).</p>
<p>Un mic amănunt fără de care s-ar putea să începi să-ţi smulgi părul din cap în cazul în care ai un event pe un link este că trebuie să adaugi un <code>return false;</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a Click!'</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>De notat că <code>return false;</code> este chiar la sfârşit, altfel tot ce este după <code>return false;</code> nu va funcţiona. De exmplu:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a Click!'</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Nu va funcţiona.</p>
<p>Un alt event foarte important este <code>.ready()</code>. Este important pentru că îţi permite rularea unor anumite funcţii după ce se încarcă toată pagina:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript 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;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p><strong>ATENŢIE </strong>! Această comandă NU va funcţiona în consolă, deoarece documentul este deja încărcat.<br />
<strong>ATENŢIE </strong>! <code>$(document)</code> NU are ghilimele.</p>
<p>Aceeaşi comandă, scrisă puţin mai scurt, arată aşa:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><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;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Eu prefer varianta lungită (prima variantă). Eventul <code>ready()</code> se poate aplica şi pe imagini, astfel încât poţi rula o funcţie în momentul în care o imagine s-a încărcat. Desigur, nu este recomandat să se folosească pe TOATE imaginile, ci pe o anume imagine.</p>
<p>După cum am precizat la început, jQuery permite chaining. Astfel, putem seta mai multe event-uri pe un element folosind un singur selector:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a Click!'</span><span style="color: #009900;">&#41;</span>;
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span>;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hover</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;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>fontSize<span style="color: #339933;">:</span> <span style="color: #3366CC;">'2em'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</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;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>fontSize<span style="color: #339933;">:</span> <span style="color: #3366CC;">'1em'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Observi că al doilea event este hover. Acesta are două funcţii ca parametru: una pentru mouseover, alta pentru mouseout.</p>
<p>O altă funcţie utilă este <code>trigger</code>. Aceasta, aşa cum îi spune şi numele, îţi permite să declanşezi un event fără ca utilizatorul să fi interacţionat în vreun fel. De exemplu:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">trigger</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Simulează eventul &#8216;click&#8217;  pe link. <strong>ATENŢIE </strong>! Deoarece JS rulează în ordinea în care e scris codul, orice trigger trebuie apelat DUPĂ ce se setează un event, altfel neavând niciun rezultat.</p>
<p>În cazul în care există elemente introduse dinamic în cod (le voi explica într-un alt episod), event-urile NU se aplică şi noilor elemente. Astfel:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;a href=&quot;#&quot;&gt;test&lt;/a&gt;'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Va returna true la click şi nu va afişa nicio alertă. Soluţia ar fi un refresh pentru event-uri sau folosirea plugin-ului <a href="http://brandonaaron.net/docs/livequery/">livequery</a>.</p>
<p>Ultimul lucru despre care îţi vorbesc azi este comanda <code>one()</code>. Aceasta aproape identică cu <code>bind()</code> cu diferenţa că <code>one()</code> este &#8220;atent&#8221; la event-ul respectiv o singură dată. Astfel:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">one</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p Click!'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Arată alertă doar pentru primul click.</p>
<p>Consider că am scris suficient despre event-uri. În câteva zile urmează un episodul despre efecte. Întrebări, nelămuriri sau felicitări sunt de aşteptat într-un comment!</p>
<p>PS: rog a mi se scuza eventualele greşeli. Sunt răcit „cobză” şi sunt fericitul posesor a peste 39°C la momentul când scriu aceste rânduri <img src='http://blog.iamntz.com/wp-includes/images/smilies/lmaosmiley.gif' alt=':w00t:' class='wp-smiley' /> </p>
<div class="nb">
<h2>IMPORTANT!</h2>
<p>M-ar ajuta foarte mult dacă primesc feedback de la începători. Vreau să ştiu dacă explic bine şi pe înţelesul tuturor, deoarece, având o oarecare experienţă îmi este destul de greu să-mi dau seama cât de accesibil este începătorilor.</p></div>
<p>Poţi încerca toate comenzile de mai sus (exceptând <code>$(document).ready()</code>) în cosolă pe următoarea pagină:<br />
<a href="http://iamntz.com/experiments/tutorial-jquery/base.html"><img src="http://www.iamntz.com/demo.jpg" alt="Încearcă şi tu!" /></a></p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1810/tutorial-jquery-3-event-uri.ionut/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery &#8211; II &#8211; Firebug</title>
		<link>http://blog.iamntz.com/1800/tutorial-jquery-2-firebug.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1800/tutorial-jquery-2-firebug.ionut#comments</comments>
		<pubDate>Sun, 14 Dec 2008 08:07:12 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1800</guid>
		<description><![CDATA[În postul anterior am precizat, în fugă, despre firebug. Pe scurt, firebug (FB) este o extensie pentru firefox (FF) ce îi permite unui web developer următoarele (şi nu numai): Debugging pentru javascript. Breakpoint-uri, condiţii şi alte chestii drăguţe, nefolositoare în momentul de faţă; Profiling. La fel de inutil în momentul de faţă, dar foarte util [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3186/boot-time.ionut' rel='bookmark' title='Permanent Link: Boot time'>Boot time</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a title="Primul tutorial jQuery în limba română" href="http://blog.iamntz.com/1773/tutorial-jquery-i.ionut">În postul anterior</a> am precizat, în fugă, despre <a href="http://getfirebug.com">firebug</a>. Pe scurt, firebug (FB) este o extensie pentru firefox (FF) ce îi permite unui web developer următoarele (şi nu numai):</p>
<ul>
<li>Debugging pentru javascript. Breakpoint-uri, condiţii şi alte chestii drăguţe, nefolositoare în momentul de faţă;</li>
<li>Profiling. La fel de inutil în momentul de faţă, dar foarte util la scripturile cu probleme, îţi permite să vezi ce funcţie consumă cel mai multe resurse;</li>
<li>Inspector &#8211; Poţi selecta un element din pagină, după care îi poţi modifica atributele şi proprietăţile CSS. De asemenea îţi arată schimbările dinamice. Ceea ce înseamnă că, în cazul în care faci schimbări în cod după încărcarea paginii (exemplu: adaugi o clasă), acestea apar în inspector. Este una din cele mai utile funcţii ale FB;</li>
<li>Consola &#8211; (aproape) Tot ce înseamnă javascript/jQuery poate fi rulat în consolă. Din nou, asta te va scuti de multe refresh-uri</li>
</ul>
<h2>Activarea Firebug</h2>
<p>Deoarece activarea FB pentru toate site-urile îngreunează browserul, este recomandat să îl activezi doar unde ai nevoie, după care îl dezactivezi:</p>
<p><a href="http://farm4.static.flickr.com/3062/3103030735_236fd2d227_o.png"><img class="alignnone" src="http://farm4.static.flickr.com/3062/3103030735_2ef19a623e.jpg" alt="" width="500" height="375" /></a></p>
<p>După ce bifezi &#8220;Console&#8221;, &#8220;Script&#8221;, &#8220;Net&#8221; şi apeşi pe &#8220;Enable [...]&#8220;, Firebug este gata de muncă :</p>
<p><a href="http://farm4.static.flickr.com/3087/3103873276_f150339e4b_o.png"><img class="alignnone" src="http://farm4.static.flickr.com/3087/3103873276_f6dbca36f8.jpg?" alt="" width="500" height="375" /></a></p>
<p>Luând unul din exemplele din articolul precedent, comanda</p>
<p>$(&#8216;strong&#8217;)</p>
<p>Va returna un obiect cu trei elemente, fiecare fiind selectabile individual, cum poţi vedea în <a href="http://www.screencast.com/users/iamntz/folders/Jing/media/18c062a5-a00b-4579-b464-a2e7d196ef24">filmul acesta</a>. Cam în acest fel funcţionează consola Firebug.</p>
<p>Spuneam la început că Firebug are şi un inspector ce ne va ajuta să vedem schimbările în cod. După ce am scris în consolă:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong:eq(0)'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rosu'</span><span style="color: #009900;">&#41;</span>;
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.changeThis'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'verde'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Avem rezultatul:</p>
<p><img class="alignnone" src="http://farm4.static.flickr.com/3090/3106168393_f124215d2b_o.png" alt="" width="497" height="260" /></p>
<p>Se observă că primul &#8220;strong&#8221; a primit clasa &#8220;rosu&#8221;  iar elementul cu clasa &#8220;.changeThis&#8221; a primit clasa &#8220;verde&#8221;. Se pot schimba atributele direct în codul HTML (click/dublu click pe orice atribut) sau proprietăţile din codul CSS.</p>
<p>Acestea fiind spuse, cred că acum avem o introducere super scurtă în utilizarea Firebug, dar mai mult decât suficientă pentru ce vom avea nevoie în această serie de tutoriale. Pe parcurs, dacă va mai fi nevoie, voi mai face adăugiri.</p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3186/boot-time.ionut' rel='bookmark' title='Permanent Link: Boot time'>Boot time</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1800/tutorial-jquery-2-firebug.ionut/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial jQuery &#8211; I</title>
		<link>http://blog.iamntz.com/1773/tutorial-jquery-i.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1773/tutorial-jquery-i.ionut#comments</comments>
		<pubDate>Fri, 12 Dec 2008 00:05:27 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1773</guid>
		<description><![CDATA[Folosesc jQuery de mai bine de un an şi pot să zic că am ajuns la un nivel la care pot să spicuiesc câte ceva util pentru începători. Iniţial am vrut să pun o listă de tips&#38;tricks, dar la sugestia unor amici m-am hotărât să fac un soi de tutorial împărţit în câteva episoade. Aşadar, [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3186/boot-time.ionut' rel='bookmark' title='Permanent Link: Boot time'>Boot time</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Folosesc jQuery de mai bine de un an şi pot să zic că am ajuns la un nivel la care pot să spicuiesc câte ceva util pentru începători. Iniţial am vrut să pun o listă de tips&amp;tricks, dar la sugestia unor amici m-am hotărât să fac un soi de tutorial împărţit în câteva episoade. Aşadar, să începem !</p>
<h2>Ce este jQuery?</h2>
<p>La fel ca Prototype, MooTools, Dojo, jQuery este o librărie javascript ce te scuteşte de dureri (mari) de cap ce ţin de compatibilitate între browsere (cross browser). Ca dimensiune este relativ mică (aprox 20kb dacă este packed&amp;gzipped), ceea ce-l face potrivit pentru majoritatea situaţiilor.</p>
<h2>De ce să foloseşti jQuery şi nu altceva?</h2>
<p>Pentru că e SIMPLU şi e documentat bine. Prima librărie folosită a fost prototype împreună cu scriptaculous. Pentru că la momentul respectiv nu ştiam mare lucru despre javascript (nu că acum aş ştii <img src='http://blog.iamntz.com/wp-includes/images/smilies/biggrin.gif' alt=':D' class='wp-smiley' />  ), am trecut obligat-forţat la jQuery deoarece nu găseam un plugin (sau ceva de genul asta <img src='http://blog.iamntz.com/wp-includes/images/smilies/pouty.gif' alt=':|' class='wp-smiley' />  ). Dintre toate librăriile cu care am avut ceva tangenţe, documentaţia jQuery mi se pare cea mai bine pusă la punct dintre toate, ceea ce-i conferă un avantaj important. Spre exemplu, am încercat să folosesc MooTools 1.1, dar mi-am cam prins urechile în documentaţia de atunci (bine, nici nu mi-am bătut capul prea mult).</p>
<p>Pe lângă toate acestea, în jurul librăriei s-a strâns o comunitate impresionantă de utilizatori, contribuitori şi&#8230; plugin-uri. Plugin-urile sunt mici (sau mari!) scripturi ce extind capabilităţile jQuery (sunt plugin-uri pentru drag &amp; drop, submiterea unui formular prin ajax, galerii de imagini etc).</p>
<h2>Ce face jQuery?</h2>
<p>jQuery îţi oferă posibilitatea de a îndeplini cu uşurinţă următoarele task-uri:</p>
<ul>
<li>Schimbi sau ştergi conţinutul unei pagini întregi sau doar a unei porţiuni din pagină;</li>
<li>Animaţii;</li>
<li>Efecte (SlideUp/SlideDown, FadeIn/FadeOut, etc);</li>
<li>Ajax;</li>
<li>Adaugi diverse event-uri (click, hover, over, focus etc) cam pe orice element din pagină;</li>
<li>Reduce la minim codul Javascript din pagină. De multe ori spun că nu ştiu decât jQuery, nu şi Javascript <img src='http://blog.iamntz.com/wp-includes/images/smilies/tongue.gif' alt=':P' class='wp-smiley' /> </li>
</ul>
<h2>Ce trebuie să ştiu pentru a folosi jQuery?</h2>
<p>Pe scurt, trebuie să cunoşti puţin CSS. Ok, ce legătură are CSS-ul cu Javascript? În mod normal, nu prea are nicio legătură, dar folosind jQuery, treaba stă un pic diferit. Asta deoarece modul de selectare al elementelor este identic cu cel din CSS.</p>
<p>Un selector CSS arată cam aşa:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">#header {
 height:100px
}</pre></div></div>

<p>Acelaşi rezultat îl poţi obţine folosind jQuery:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">jQuery<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#header'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span>height<span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Foloseşte <a href="http://getfirebug.com">firebug</a>. Astfel, vei putea face diverse încercări fără a fi nevoie de modificări ale sursei, salvare, refresh <img src='http://blog.iamntz.com/wp-includes/images/smilies/wink.gif' alt=';)' class='wp-smiley' />  <a href="http://farm4.static.flickr.com/3036/3101552388_a390301087_o.png">Exemplul 1</a>. <a href="http://farm4.static.flickr.com/3114/3101559414_8ab8b3ff6f_o.png">Exemplul 2</a>.</p>
<p>Trebuie să scrii jQuery la începutul fiecărei „propoziţii”? Well&#8230; În mod normal da. Pentru a păstra compatibilitatea cu alte librării (da, poţi folosi prototype şi jQuery pe aceeaşi pagină!) este recomandat să foloseşti jQuery ca prefix. Altfel, poţi folosi funcţia `$` întâlnită în mai toate librăriile cunoscute (desigur, cu efecte diferite), având acelaşi rezultat:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#header'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span>height<span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Oricum, începător fiind, presupunem că nu vei avea nevoie de mai multe librării.</p>
<h2>Selectori</h2>
<p>Spuneam mai sus că jQuery are aproximativ aceeaşi sintaxă folosită şi în CSS. Din fericire, este un pic mai evoluată (acceptă cam toate pseudo-clasele implementate în css3!) ceea ce cu siguranţă îţi va face viaţa mai uşoară în multe situaţii. Pentru teste, voi folosi un cod &#8220;<a href="http://iamntz.com/experiments/tutorial-jquery/base.html">dummy</a>&#8220;, luat de pe <a href="http://html-ipsum.com/">html-ipsum.com</a> şi uşor modificat. Tot codul javascript (ca şi codul CSS de altfel) este recomandat să fie într-un fişier extern din două motive importante :</p>
<ol>
<li>Fişierele externe sunt păstrate în cache</li>
<li>În cazul în care ai ceva de modificat, nu va trebui să umbli în toate paginile</li>
</ol>
<p><span id="more-1773"></span><br />
În codul de mai sus, presupunem că vrem să colorăm tot ce este cu bold în roşu. În CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">strong {
 color:red
}</pre></div></div>

<p>Acelaşi lucru îl putem realiza folosind jQuery:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rosu'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Am folosit o clasă în defavoarea unei proprietăţi CSS deoarece, în cazul în care vrei să schimbi vreun atribut (fie culoare, fie altceva), să nu fie necesară editarea fişierului javascript.</p>
<p>Ok, ţi-am arătat cum selectezi un <code>ID</code>, ţi-am arătat cum selectezi un tag, dar cum selectezi un element cu o anume clasă? Păi&#8230; Fix la fel ca în CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.changeThis'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'verde'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Putem fi ceva mai expliciţi de atât:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong.changeThis'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'verde'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Sau chiar:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'p strong.changeThis'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'verde'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Totuşi, în urma unor teste, am ajuns la concluzia că cel mai rapid selector este cel mai simplu (adică primul, unde nu se specifică nimic altceva decât clasa, id-ul sau tag-ul).</p>
<p>În momentul când foloseşti un selector ce nu este <code>#id</code>, tot ce urmează după punct (adică toate comenzile) se aplică tuturor elementelor găsite. Astfel, în primul exemplu, tuturor elementelor <code>strong</code> li se va aplica clasa <code>.rosu</code>. Dar ce facem dacă vrem să modificăm doar un anumit element fără să folosim clase/id-uri? Ne jucăm cu alţi selectori!</p>
<p>Pentru a selecta doar primul <code>strong</code> poţi folosi</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong:first'</span><span style="color: #009900;">&#41;</span>
<span style="color: #006600; font-style: italic;">//sau</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'strong:eq(0)'</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>Primul exemplu este destul de explicit. Al doilea însă este mai puţin. Este oarecum evident că selectează elementul cu numărul X, dar&#8230; de ce ZERO? Cam în orice limbaj de programare, numerotarea începe de la zero. Javascript nu este mai prejos, prin urmare, în cazul în care în pagină sunt cinci elemente <code>strong</code>, numerotarea lor va fi de la 0 la 4. Aşadar, primul este zero. Simplu, nu?</p>
<p>În acelaşi mod te poţi folosi din plin de selectorii ierarhici:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ul:eq(0) &amp;gt; li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Pentru a adăuga o clasă doar copiilor direcţi din prima listă.</p>
<p><strong>Pentru început </strong>zic că este suficient. În zilele următoare, în măsura timpului liber, voi scrie despre efecte, event-uri, Ajax şi alte bunătăţuri ce sunt prin jQuery.</p>
<p>Dacă nu ai înţeles sau ceva nu ţi-a ieşit, te invit să laşi un comentariu în care să explici ce şi cum. Accept şi comentarii de felicitare <img src='http://blog.iamntz.com/wp-includes/images/smilies/biggrin.gif' alt=':D' class='wp-smiley' /> </p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3186/boot-time.ionut' rel='bookmark' title='Permanent Link: Boot time'>Boot time</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1773/tutorial-jquery-i.ionut/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Alternativă pentru Lightbox (jQuery)</title>
		<link>http://blog.iamntz.com/1469/alternativa-pentru-lightbox-jquery.ionut?utm_source=subscriber&amp;utm_medium=rss&amp;utm_campaign=rss</link>
		<comments>http://blog.iamntz.com/1469/alternativa-pentru-lightbox-jquery.ionut#comments</comments>
		<pubDate>Fri, 26 Sep 2008 06:58:17 +0000</pubDate>
		<dc:creator>Staicu Ionuț Bogdan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[My work / Portfolio]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://blog.iamntz.com/?p=1469</guid>
		<description><![CDATA[Aseară, într-o criză datorată lipsei unui script care să facă ce vreau eu şi să fie şi mic (în KB), m-am apucat şi am scris un mini-plugin (care de fapt este o funcţie) pentru afişarea unui modal box. Pentru ce e bun? Păi&#8230; Eu l-am folosit pentru afişarea unui editor, tu îl poţi folosi pentru [...]

<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3050/sanatate-pentru-banca-transilvania.ionut' rel='bookmark' title='Permanent Link: Sănătate pentru Banca Transilvania!'>Sănătate pentru Banca Transilvania!</a></li>
<li><a href='http://blog.iamntz.com/3165/pentru-%e2%80%9escriitorii%e2%80%9d-de-subtitrari.ionut' rel='bookmark' title='Permanent Link: Pentru „scriitorii” de subtitrări'>Pentru „scriitorii” de subtitrări</a></li>
<li><a href='http://blog.iamntz.com/2980/pentru-fanii-lost.ionut' rel='bookmark' title='Permanent Link: Pentru fanii LOST&#8230;'>Pentru fanii LOST&#8230;</a></li>
<li><a href='http://blog.iamntz.com/2603/quick-tip-pentru-yahoo-messenger.ionut' rel='bookmark' title='Permanent Link: Quick Tip pentru Yahoo! Messenger'>Quick Tip pentru Yahoo! Messenger</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol><h5>Ultimele articole pe <a href="http://www.iamntz.com">www.iamntz.com</a></h5><ol><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6rVZAeahMjo/">Link-urile săptămânii 30 aug – 5 sept</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/DXQbxhCEhZU/">Tu ai vreun țel?</a> <small>(05-09-10)</small></li><li><a href="http://feedproxy.google.com/~r/TheFrontendDeveloper/~3/6vyy48MEusE/">Vreau să învăț limbajul X!</a> <small>(04-09-10)</small></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Aseară, într-o criză datorată lipsei unui script care să facă ce vreau eu şi să fie şi mic (în KB), m-am apucat şi am scris un mini-plugin (care de fapt este o funcţie) pentru afişarea unui modal box. Pentru ce e bun? Păi&#8230; Eu l-am folosit pentru afişarea unui editor, tu îl poţi folosi pentru orice altceva <img src='http://blog.iamntz.com/wp-includes/images/smilies/smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Îi poţi specifica lătimea, are callback, poate afişa conţinut citit prin AJAX şi&#8230; Da, e MIC al dracu. 40 linii de cod <img src='http://blog.iamntz.com/wp-includes/images/smilies/lmaosmiley.gif' alt=':w00t:' class='wp-smiley' />  L-am testat în IE6/IE7/FF2/FF3/Opera 9.5/Safari. Dar foarte probabil să funcţioneze fără probleme şi în alte browsere.</p>
<p>Mai multe detalii <strong><a href="http://dev.iamntz.com/52/jquery-modal-lightbox-alternative">AICI</a></strong>. Enjoy!</p>


<h5>Posturi cu o oarecare legătură:</h5><ol><li><a href='http://blog.iamntz.com/3050/sanatate-pentru-banca-transilvania.ionut' rel='bookmark' title='Permanent Link: Sănătate pentru Banca Transilvania!'>Sănătate pentru Banca Transilvania!</a></li>
<li><a href='http://blog.iamntz.com/3165/pentru-%e2%80%9escriitorii%e2%80%9d-de-subtitrari.ionut' rel='bookmark' title='Permanent Link: Pentru „scriitorii” de subtitrări'>Pentru „scriitorii” de subtitrări</a></li>
<li><a href='http://blog.iamntz.com/2980/pentru-fanii-lost.ionut' rel='bookmark' title='Permanent Link: Pentru fanii LOST&#8230;'>Pentru fanii LOST&#8230;</a></li>
<li><a href='http://blog.iamntz.com/2603/quick-tip-pentru-yahoo-messenger.ionut' rel='bookmark' title='Permanent Link: Quick Tip pentru Yahoo! Messenger'>Quick Tip pentru Yahoo! Messenger</a></li>
<li><a href='http://blog.iamntz.com/2776/cum-configurezi-join-air-de-la-rds-pe-mac.ionut' rel='bookmark' title='Permanent Link: Cum configurezi Join Air de la RDS pe MAC?'>Cum configurezi Join Air de la RDS pe MAC?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.iamntz.com/1469/alternativa-pentru-lightbox-jquery.ionut/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
