<?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>(function() { &#187; javscript</title>
	<atom:link href="http://maxb.net/blog/tag/javscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://maxb.net/blog</link>
	<description>// MAXB.NET LABS</description>
	<lastBuildDate>Mon, 16 May 2011 19:12:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Imparare jQuery – 7 – jPaging – Step 3 : Differenze via jQuery – 1/2</title>
		<link>http://maxb.net/blog/2008/07/01/imparare-jquery-7-jpaging-step-3-differenze-via-jquery1/</link>
		<comments>http://maxb.net/blog/2008/07/01/imparare-jquery-7-jpaging-step-3-differenze-via-jquery1/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 09:55:38 +0000</pubDate>
		<dc:creator>Massimiliano Balestrieri</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jpaging]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[javscript]]></category>

		<guid isPermaLink="false">http://maxb.net/blog/?p=102</guid>
		<description><![CDATA[post precedente : template pre-js indice tutorial Nel post precedente ho tagliato dall&#8217;xhtml qualsiasi struttura utile alla sola componente js. jQuery Aggiungere, manipolare in generale, elementi html di una pagina è uno dei principali motivi di successo nel mondo, della &#8230; <a href="http://maxb.net/blog/2008/07/01/imparare-jquery-7-jpaging-step-3-differenze-via-jquery1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li> <a href="http://maxb.net/blog/2008/07/01/imparare-jquery-6-jpaging-step-2-template-pre-js/">post precedente : template pre-js</a></li>
<li> <a href="http://maxb.net/blog/2008/06/30/imparare-jquery-4-jpaging-introduzione/">indice tutorial</a></li>
</ul>
<p>Nel post precedente ho tagliato dall&#8217;xhtml qualsiasi struttura utile alla sola componente js.</p>
<h3>jQuery</h3>
<p>Aggiungere, manipolare in generale, elementi html di una pagina è uno dei principali motivi di successo nel mondo, della libreria creata dal genio di <strong>John Resig</strong>.<br />
Una delle invenzioni più geniali che io abbia potuto veder nascere e crescere in questo mondo da quando &#8220;lo vivo&#8221;.</p>
<p>Prima odiavo il &#8220;front-end&#8221;.<br />
Il css soprattutto e le sue differenze tra browsers. Poi non conoscevo assolutamente le tecniche (gli idiomi e i pattern) avanzate del linguaggio javascript. E in ultimo non esisteva (o non conoscevo) <a href="http://www.getfirebug.com/">firebug</a>.</p>
<p>Andavo avanti a funzioni e anche li era una lotta perenne tra attributi proprietari e standard. Tra ambienti di debug minimi (mozilla/firefox) e lo zero assoluto (Explorer).<br />
Tra messaggi di errore comprensibili e assurde traduzioni in italiano (&#8220;Impossibile eseguire lo script liberato&#8221;&#8230; si certo, come no? cos&#8217;è lo script liberato?).</p>
<p>jQuery come è possibile vedere dalla sua reference è divisibile in </p>
<ul>
<li>jQuery Core</li>
<li>DOM (Selectors/Attributes/Traversing/Manipulation)</li>
<li>CSS</li>
<li>Events</li>
<li>Effects</li>
<li>Ajax</li>
</ul>
<p><a href="http://docs.jquery.com/Main_Page">jQuery Documentation</a></p>
<p>In questo post vedremo come aggiungere a runtime le differenza xhtml tra il <a href="http://maxb.net/scripts/jpaging/tutorial/step1.html">primo</a> e il <a href="http://maxb.net/scripts/jpaging/tutorial/step2.html">secondo</a> template.<br />
Tra lo studio del componente finito e la sua versione accessibile senza javascript attivo.</p>
<p>Cosa dobbiamo fare? Facciamo un minimo di analisi.</p>
<p><strong>Tralasciamo</strong> per ora le <strong>BUONE PRATICHE</strong> di programmazione javascript (terzo punto per una programmazione non intrusiva).<br />
Vediamo passo passo quali operazioni deve eseguire il nostro js: il nostro <em>rozzo &#8220;main&#8221;</em>.</p>
<ol>
<li>Noto subito che i records (
<div class="record"><!-- lorem ipsum --></div>
<p>) non sono divisi in pagine. </li>
<li> La toolbar. </li>
<li>La visualizzazione della pagina attiva e il &#8220;nascondimento&#8221; delle pagine non visibili.</li>
</ol>
<p>Procediamo per passi.</p>
<p>Innanzitutto come ho già ripetuto alla noia devo aspettare l&#8217;evento &#8220;onload&#8221;.<br />
Non ho immagini, ne operazioni da fare su di esse. (Questo però non lo posso sapere a priori, e a dire il vero qualche test con swf e oggetti esterni potrei farlo, per vedere eventuali bugs di visualizzazione).</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery(document).ready(function(){

});
</pre>
<p>Ready prende come argomento una <strong>funzione</strong>.<br />
Il poter passare come argomento una funzione <em>anonima</em> è una delle funzionalità più potenti del linguaggio javascript.<br />
Il nostro programma verrà eseguito una volta che il DOM è disponibile e raggiungibile.</p>
<p>All&#8217;interno di questa <strong>closure</strong> (poi ne parlerò, ogni argomento funzione rappresenta una closure) il nostro programma ha un ambito ristretto e definito.<br />
Se non commetto &#8220;refusi&#8221; nella programmazione non avrò &#8220;globali&#8221;: una fondamentale BUONA PRATICA di programmazione non intrusiva. </p>
<p>Il refuso più diffuso è inizializzare una variabile senza var davanti. Lo chiamo refuso&#8230; perchè uno che sa, lo fa per distrazione.<br />
Secondo refuso è scrivere una cosa del genere: var a = b = 0;<br />
b è globale <strong>attenzione</strong>! Ci sono cascato.</p>
<p>Usare variabili globali diffusamente è una cattiva pratica. Secondo me un punto globale ci deve sempre essere. Ed è il &#8220;<a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton</a>&#8220;. Ma c&#8217;è chi sostiene che anche questa sia una cattiva pratica. O mi sfugge qualcosa, o loro non hanno forse mai programmato.</p>
<blockquote><p>
In software engineering, the singleton pattern is a design pattern that is used to restrict instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system. Sometimes it is generalized to systems that operate more efficiently when only one or a few objects exist. It is also considered an anti-pattern by some people, who feel that it is often used as a euphemism for global variable. &#8211; da <a href="http://en.wikipedia.org/wiki/Singleton_pattern">wikipedia</a></p></blockquote>
<h3>Passo 1 &#8211; Dividere in pagine i record</h3>
<p>Dividiamo inizialmente in blocchi da 3 record le pagine e &#8220;wrappiamo&#8221; (racchiudiamo, inglobiamo) 3 record all&#8217;interno di un div (contenitore)  &#8220;pagina&#8221;.</p>
<pre class="brush: jscript; title: ; notranslate">
  var _records = jQuery(&quot;.record&quot;);
  var _per_pagina = 3;
  var _pages = Math.ceil(_records.size() / _per_pagina);
  for(var _x= 1;_x &lt;= _pages; _x++){
    //wrap
    var _page_start = (_x - 1) * _per_pagina;
    var _page_stop = _page_start + _per_pagina;
    var _slice = _records.slice(_page_start, _page_stop);
    _slice.wrapAll('&lt;div class=&quot;jp-page&quot; id=&quot;page-'+_x+'&quot; /&gt;');
  }
</pre>
<p>*<strong>cerco di scrivere sempre i nomi di variabili in inglese &#8211; mi è sfuggito _per_pagina</strong></p>
<p>Testiamo il codice con <a href="http://www.getfirebug.com/">firebug</a>. Vediamo se scatena eccezioni. Nel tab html (di firebug, o altrimenti tramite webdevolperbar, sempre firefox, View Source -> View generated source, o altrimenti sempre con firefox, seleziona tutto -> tasto destro -> vedi selezione)  è possibile vedere il codice generato. </p>
<p>Ho aggiunto classe e id alla pagine perchè so già che ne avrò bisogno per gli eventi. </p>
<p>Le variabili con l&#8217;underscore davanti stanno a indicare che sono private ad un ambito. </p>
<p>Questione di stile (ma anche di buone pratiche, non tutti hanno a disposizione la chiarezza sintattica di java, e a volte può essere una vera fortuna). </p>
<p>Liberi di fare un po&#8217; quello che preferite. Io in questo modo vedo le variabili che arrivano dall&#8217;esterno di un ambito (arguments) o le variabili globali (se mai ce ne dovessero essere) o le proprietà/attributi che stabilisco essere pubbliche (perchè c&#8217;è il modo di stabilire la visibilità in javascript, solo che lo vedremo in un altro tutorial).</p>
<p>Sottolineo un paio di passaggi dello &#8220;snippet&#8221; precendente jQuery.</p>
<h3>jQuery(selector);</h3>
<p>La <strong>query</strong> innanzitutto: jQuery(&#8220;.record&#8221;); </p>
<p>Non uso mai il $.<br />
jQuery può essere usato via <strong>alias</strong> $.</p>
<ul>
<li>Io spesso lavoro in ambiti dove si usa <a href="http://prototypejs.org/">prototype</a>&#8230; non voglio problemi di conflitti.</li>
<li>E poi il dollaro mi ricorda altro. Il php. Ed ha un altro senso il dollaro nel php.</li>
<li>E con un search&#038;replace posso sempre aggiungerlo.</li>
<li>E google registra che qui si parla di jQuery. Ed è un bene.</li>
</ul>
<p><strong>.record è un selettore css.</strong> </p>
<p>Si usa per le <em>interrogazioni</em> jQuery esattamente come nel css viene usato per applicare lo stile.<br />
E&#8217; il tipo di selezione più diffuso e semplice. Ne esistono altri (xPath) più complessi da leggere e da applicare ma anche più potenti.</p>
<p>La query restituisce gli oggetti jQuery che &#8220;wrappano&#8221; le references html.</p>
<p>Per chi viene dal DOM classico:<br />
invece di avere il risultato di un document.getElementByTagName (o byID o con estensione byClassName) fatto di nodi HTML, attraverso interrogazione jQuery ho lo &#8220;stesso risultato&#8221;, ma fatto di oggetti jQuery. Chiaro?</p>
<p>Con un nodo HTML potrei fare risultato.id per ottenere l&#8217;ID del nodo o setAttribute per settare un nuovo attributo al nodo. Con l&#8217;oggetto jQuery posso fare le stesse cose usando i metodi jQuery o posso fare le native operazioni DOM con</p>
<p>jQuery(risultato).get(0).id</p>
<p>Quindi con il metodo get() ottengo la reference HTML. 0 può essere sottointeso.</p>
<p>Capire questo è fondamentale per proseguire.</p>
<p>DIMENTICATEVI l&#8217;implementazione nativa del DOM e tutti i suoi problemi. Almeno io non la voglio più vedere. Nonostante sia uno standard (in teoria) qualche multinazionale mi ha fatto odiare l&#8217;implementazione nativa.<br />
E poi mi sento dire dai  Programmatori filo-microsoft che IO non sono professionale!<br />
Potevano prima di criticare me, insegnare loro la lettura di documenti di standard? RFC e quant&#8217;altro.</p>
<h3>jQuery(selector).slice();</h3>
<p>Ho usato il metodo <strong>slice</strong> (jQuery) per avere una porzione di nodi dall&#8217;array restituito dalla selezione (dal record x al record y).</p>
<h3>jQuery(selector).wrapAll();</h3>
<p>E il metodo <strong>wrapAll</strong> che permette di <em>wrappare</em> (racchiudere, inglobare) appunto gli elementi selezionati con un nodo (o più)  html.</p>
<p>Il metodo <strong>wrap</strong> avrebbe aggiunto ad ogni singolo elemento restituito da slice il codice html, quindi invece di avere un div page a contenere 3 record avrei avuto un div page a contenere ogni singolo record (e non serviva a niente).</p>
<h3>jQuery(selector).size();</h3>
<p>Il metodo size permette di avere il numero di elementi ottenuti dalla selezione jQuery. </p>
<p>Ecco la </p>
<p><a href="http://maxb.net/scripts/jpaging/tutorial/step3.html" target="_blank">DEMO</a></p>
<p>e qui il codice generato da queste prime 5 righe di codice js:</p>
<p>Da:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;target&quot;&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>A:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;target&quot;&gt;
    &lt;div id=&quot;page-1&quot; class=&quot;jp-page&quot;&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div id=&quot;page-2&quot; class=&quot;jp-page&quot;&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div id=&quot;page-3&quot; class=&quot;jp-page&quot;&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
    &lt;div id=&quot;page-4&quot; class=&quot;jp-page&quot;&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;record&quot;&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>[... continua]</p>
]]></content:encoded>
			<wfw:commentRss>http://maxb.net/blog/2008/07/01/imparare-jquery-7-jpaging-step-3-differenze-via-jquery1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Imparare jQuery – 6 – jPaging – Step 2 : Template pre-js</title>
		<link>http://maxb.net/blog/2008/07/01/imparare-jquery-6-jpaging-step-2-template-pre-js/</link>
		<comments>http://maxb.net/blog/2008/07/01/imparare-jquery-6-jpaging-step-2-template-pre-js/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 08:26:46 +0000</pubDate>
		<dc:creator>Massimiliano Balestrieri</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jpaging]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[javscript]]></category>

		<guid isPermaLink="false">http://maxb.net/blog/?p=101</guid>
		<description><![CDATA[post precedente : Studio UI indice tutorial Nell&#8217;esempio precedente abbiamo visto il componente &#8220;finito&#8221;. Non funzionante. Ma visivamente come dovrebbe essere alla fine del nostro processo di sviluppo. La paginazione, la pagina attiva, i pulsanti avanti e indietro (visibili o &#8230; <a href="http://maxb.net/blog/2008/07/01/imparare-jquery-6-jpaging-step-2-template-pre-js/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://maxb.net/blog/2008/06/30/imparare-jquery-5-jpaging-step-1-studio-ui/">post precedente : Studio UI</a></li>
<li> <a href="http://maxb.net/blog/2008/06/30/imparare-jquery-4-jpaging-introduzione/">indice tutorial</a></li>
</ul>
<p>Nell&#8217;esempio precedente abbiamo visto il componente &#8220;finito&#8221;. Non funzionante. Ma visivamente come dovrebbe essere alla fine del nostro processo di sviluppo.</p>
<p>La paginazione, la pagina attiva, i pulsanti avanti e indietro (visibili o meno).</p>
<p>Per programmare in maniera intrusiva bisogna rispettare il principio del &#8220;<a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">Graceful degradation</a>&#8220;.<br />
Io devo AGGIUNGERE una funzionalità. Aggiungerla a &#8220;runtime&#8221; sull&#8217;evento load.<br />
Devo garantire una base visibile e accessibile a chiunque, anche ai browsers (o ai bot/spiders) non dotati di engine js.</p>
<p>Vediamo come ripensare il template precedente senza paginazione javascript, o meglio senza javascript.<br />
La toolbar è chiaramente inutile ad un utente senza javascript : cosa se ne farebbe?</p>
<p>Questo esempio è veramente banale. Altri compoenenti UI sono più difficili da pensare e studiare nei due stati (js e nojs).</p>
<p><a href="http://maxb.net/scripts/jpaging/tutorial/step2.html" target="_blank">DEMO</a></p>
<p>XHMTL:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;target&quot;&gt;
  &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;!-- etc --&gt;
&lt;/div&gt;
</pre>
<p>Conclusione: il template statico deve essere questo. NON quello dello studio UI del post precendente.<br />
Vedremo come aggiungere tutto quello che è &#8220;js&#8221; via js stesso.</p>
<p><strong>Aggiungi via js, l&#8217;interfaccia js e i suoi stili (oltre che le funzionalità).</strong></p>
<p>Seguendo questo principio, motori di ricerca,  browsers testuali, e dispositivi mobili leggeranno perfettamente tutte le nostre pagine. &#8220;Male che vada&#8221; arriveranno all&#8217;informazione. </p>
<p>In questo esempio l&#8217;unico svantaggio dell&#8217;utente (o agente) senza js (e non è detto che sia uno svantaggio) sarà quello di dover scorrere la pagina. </p>
<p>Le informazioni verranno perfettamente indicizzate. </p>
<p>Il tutorial è destinato a chi vuole avvicinarsi al mondo javascript e in particolare alla libreria jQuery.<br />
La paginazione lato-client presenta vantaggi e svantaggi.<br />
Ma non sta a me definirli.</p>
<p>[... continua]</p>
<p>PS: troppo semplice questo post. passiamo al successivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxb.net/blog/2008/07/01/imparare-jquery-6-jpaging-step-2-template-pre-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Imparare jQuery – 5 – jPaging – Step 1 : Studio UI</title>
		<link>http://maxb.net/blog/2008/06/30/imparare-jquery-5-jpaging-step-1-studio-ui/</link>
		<comments>http://maxb.net/blog/2008/06/30/imparare-jquery-5-jpaging-step-1-studio-ui/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 09:43:09 +0000</pubDate>
		<dc:creator>Massimiliano Balestrieri</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jpaging]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[javscript]]></category>

		<guid isPermaLink="false">http://maxb.net/blog/?p=95</guid>
		<description><![CDATA[indice tutorial Il componente è stato progettato e disegnato in html/css. Lo &#8220;storyboard&#8221; è più o meno questo: Qualcuno ha pensato che un componente per la paginazione client-side possa essere utile Qualcuno ha dato incarico al settore grafico/impaginazione web di &#8230; <a href="http://maxb.net/blog/2008/06/30/imparare-jquery-5-jpaging-step-1-studio-ui/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://maxb.net/blog/2008/06/30/imparare-jquery-4-jpaging-introduzione/">indice tutorial</a></li>
</ul>
<p>Il componente è stato progettato e disegnato in html/css.<br />
Lo &#8220;storyboard&#8221; è più o meno questo:</p>
<ol>
<li>Qualcuno ha pensato che un componente per la paginazione client-side possa essere utile</li>
<li>Qualcuno ha dato incarico al settore grafico/impaginazione web di creare un template statico con css allegato del componente (il pattern html)</li>
<li>Qualcuno arriva dal programmatore javascript/jquery per la creazione di un plugin che permetta velocemente e facilmente di aggiungere una paginazione client-side basata su questo template alle webapp e ai siti dell&#8217;azienda</li>
<li>Il componente deve essere facile da configurare e riusare, e deve essere slegato dal design particolare di un progetto.</li>
</ol>
<p>Il template in questo caso è proprio solo un esempio.<br />
Ripeto ci sarà veramente un css basilare.<br />
Sarà possibile applicare una &#8220;skin&#8221; cambiando il css.</p>
<p>Il codice xhtml si basa su questa struttura. </p>
<pre class="brush: xml; title: ; notranslate">

&lt;div class=&quot;target&quot;&gt;
  &lt;div class=&quot;jp-toolbar&quot;&gt;
    &lt;span class=&quot;left&quot;&gt;Page:  &lt;/span&gt;
    &lt;span class=&quot;right&quot;&gt;
      &lt;span class=&quot;numbers&quot;&gt;
      &lt;a style=&quot;display: none;&quot; href=&quot;#&quot;&gt;&amp;amp;lt;&amp;amp;lt; prev&lt;/a&gt;
      &lt;span&gt; | &lt;/span&gt;
      &lt;a class=&quot;jp-active&quot; href=&quot;#1&quot;&gt;1&lt;/a&gt;
      &lt;span&gt; | &lt;/span&gt;
      &lt;a href=&quot;#2&quot;&gt;2&lt;/a&gt;
      &lt;span&gt; | &lt;/span&gt;
      &lt;a href=&quot;#3&quot;&gt;3&lt;/a&gt;
      &lt;span&gt; | &lt;/span&gt;
      &lt;a href=&quot;#4&quot;&gt;4&lt;/a&gt;
      &lt;span&gt; | &lt;/span&gt;
      &lt;a href=&quot;#&quot;&gt;next &amp;amp;gt;&amp;amp;gt;&lt;/a&gt;
    &lt;/span&gt;
    &lt;/span&gt;
  &lt;/div&gt;
  &lt;div style=&quot;display: block;&quot;&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div style=&quot;display: none;&quot;&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div style=&quot;display: none;&quot;&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
      &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div style=&quot;display: none;&quot;&gt;
    &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
    &lt;div class=&quot;record&quot;&gt;&lt;!-- lorem ipsum --&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;!-- toolbar again --&gt;
  &lt;div class=&quot;jp-toolbar&quot;&gt;
  &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Non è detto che sia definitivo. jQuery ci potrebbe in un certo senso imporre per questioni di velocità di aggiungere classi o id per reperire in maniera più semplice gli elementi.<br />
Gli stili inline sono come punti provvisori di un orlo di un pantalone.<br />
Servono solo ora per progettare correttamente il comportamento js.</p>
<p><a href="http://maxb.net/scripts/jpaging/tutorial/step1.html" target="_blank">DEMO</a></p>
<p>Ho creato 4 pagine (pagine di una paginazione).<br />
1 sola è visibile. (ovvio)<br />
La toolbar è presente sopra e sotto.<br />
Il container e i record hanno una classe per definirne uno stile via css.<br />
La paginazione ha due tasti extra per andare avanti e indietro.<br />
Non ci sono meccanismi complessi di carrelli e visibilità di un blocco di pagine.</p>
<p>Il css per questo template è basico:</p>
<pre class="brush: css; title: ; notranslate">
body{font-size:75%;}

.jp-toolbar{ margin:auto;text-align:right; width: 90%;}
.jp-active, a.jp-active:active, a.jp-active:link{ color:#FAA912; font-size:1.2em; font-weight:bold;}

.record{

    width: 90%;
    border: 1px dashed #000;
    margin: auto;
    color:#000;
    padding:3px;
}
.container{
    margin:auto;
    border: 3px dashed #000;
    padding:2px;
}
</pre>
<p>Questo esempio è ripeto solo uno studio del componente UI nel suo stadio finale.<br />
Non è definitivo, non è detto che ci sia tutto il necessario.</p>
<p>[... continua]</p>
]]></content:encoded>
			<wfw:commentRss>http://maxb.net/blog/2008/06/30/imparare-jquery-5-jpaging-step-1-studio-ui/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

