SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Introduzione a jQuery


                                            Emiliano Castellina
                                            Dipartimento di Automatica e Informatica
                                            Politecnico di Torino


Introduzione a jQuery by Emiliano Castellina is licensed under a Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported License.
Sommario

  Introduzione
  Selettori
  Operazioni   sugli oggetti selezionati
  Eventi




                                            2
INTRODUZIONE




               3
Libri Consigliati
  jQuery   in Action
  ◦  Autori: Bear Bibeault and Yehuda
     Katz
  ◦  Febbraio, 2008 | 376 pagine
  ◦  ISBN: 1933988355
  jQuery
        UI 1.7: The User Interface Library
 for jQuery
  ◦  Autore: Dan Wellman
  ◦  Novembre 2009 | 392 pagine
  ◦  ISBN : 1847199720

                                         4
Link utili
    Sito web di jQuery: è possibile scaricare l’ultima
     versione della libreria, visualizzare la documentazione
     e tutorial
     ◦  http://jquery.com
    Sito web di jQuery User Interface: libreria di
     componenti grafici di jQuery
     ◦  http://jqueryui.com/
    Sito web di Eclipse: ambiente di sviluppo open source
     che supporta diversi linguaggi di programmazione.
     ◦  http://www.eclipse.org
    Aptana: plugin di Eclipse per lo sviluppo di pagine
     web (html, css, javascript)
     ◦  http://www.aptana.com/downloads/start


                                                             5
Perché jQuery?
  Motto:  Scrivi Meno, Fai di più
  Facilita la selezione degli elementi del
   DOM tramite selettori CSS
  Semplice da imparare
  Cross-browser
  Compatibile con altre librerie Javascript




                                               6
Operazioni Preliminari (1/2)
  Scaricare   l’ultima versione della libreria
 jQuery
     http://code.jquery.com/jquery-1.5.1.min.js
  Importare   jQuery nella pagina web




                                                   7
Operazioni Preliminari (2/2)
                 Creare uno script che al caricamento della
                  pagina visualizzi una finestra di dialogo
                  che mostri la versione corrente di jquery
                  ◦  Aggiungere nell’header




$ Scorciatoia per la Funzione richiamata quando il   Stringa Versione
funzione jQuery      documento è completamente       di jQuery
                     caricato                                           8
Oggetto jQuery() $()
  Permette    di selezionare e Creare elementi
 del DOM
  ◦  Può avere come parametro:
     Selettore CSS $("p.evidenziato")
       Restituisce un array di oggetti, eventualmente vuoto
     Oggetti javascript $(this.value)
       Restituisce un array di oggetti contenente l’elemento passato
        come parametro
     Codice HTML $("<div>Ciao            Mondo</div>")
       Crea un elemento del DOM e restituisce un array di oggetti
        contenente l’elemento appena creato


                                                                     9
SELETTORI




            10
Selettori CSS                $(elemento)
  Permettedi selezionare gli elementi HTML
 passati come parametro
  ◦  $("p")    tutti i paragrafi della pagina
  ◦    $("a") tutti i link (e ancore) della pagina

  ◦    $("a,p") tutti i link e i paragrafi della pagina




                                                          11
Selettori CSS                    $(#idelemento)

  Permette
          di selezionare l’elemento della
 pagina che ha l’id passato come
 parametro
  ◦  $("#principale")   elemento della pagina con
       attributo id="principale"
  ◦    $("div#principale") div della pagina con
       attributo id="principale"
         Essendo l’id univoco all’interno della pagina la
          selezione del div poteva essere omessa


                                                             12
Selettori CSS                $(.nomeclasse)

  Permette
          di selezionare gli elementi della
 pagina che hanno la classe passata come
 parametro
  ◦  $(".evidenziato")   elementi della pagina che
       hanno classe evidenziato
  ◦    $("div.evidenziato") tutti i div della pagina con
       classe evidenziato




                                                      13
Selettori CSS          $(elemento[attributo])

  Permette
          di selezionare gli elementi della
 pagina che hanno l’attributo passato come
 parametro
  ◦  $("img[title]")    tutte le immagini in cui è
       specificato l’attributo title
  ◦    $("input[value]") tutti gli elementi input in cui è
       specificato l’attributo value




                                                         14
Selettori CSS
$(elemento[attributo=x])
  Permette
          di selezionare gli elementi della
 pagina che hanno l’attributo passato come
 parametro uguale al valore X
  ◦  $("img[title=‘logo’]")     tutte le immagini in cui
       l’attributo titolo è uguale a ‘logo’
  ◦    $("input[type=‘radio’]") tutti gli elementi input
       di tipo radio




                                                       15
Selettori CSS
$(elemento[attributoˆ=x])
  Permette
          di selezionare gli elementi della
 pagina che hanno l’attributo passato come
 parametro che inizia per X
  ◦  $("img[title^='logo']")      tutte le immagini in cui
       l’attributo titolo inizia con ‘logo’
  ◦    $("a[hrefˆ=‘http://’]") tutti i link con indirizzo
       non relativo




                                                             16
Selettori CSS
$(elemento[attributo$=x])
  Permette
          di selezionare gli elementi della
 pagina che hanno l’attributo passato come
 parametro che finisce per X
  ◦  $("img[src$='.png']")   tutte le immagini con
   estensione png
  ◦  $("a[href$='.pdf']")   tutti i link a file pdf




                                                      17
Selettori CSS
$(elemento[attributo*=x])
  Permette
          di selezionare gli elementi della
 pagina che hanno l’attributo passato come
 parametro che contiene la stringa X
  ◦  $("img[title*='logo']")     tutte le immagini in cui
       l’attributo titolo contiene la stringa ‘logo’
  ◦    $("a[href*='polito.it']") tutti i link che
       contengono nell’indirizzo la stringa ‘polito.it’




                                                            18
Selettori CSS
$(padre > figli)
  Permettedi selezionare gli elementi "figli"
  che sono discendenti diretti dell’elemento
  "padre"
  ◦  $(div > ul)    tutte le liste che sono contenute
       direttamente in un div
  ◦    $(div > li) errato!!! Selezionerebbe tutti gli
       elementi di una lista contenuti direttamente in
       un div. Gli elementi di una lista devono essere
       contenuti in elementi ul o ol


                                                     19
Selettori CSS
$(fratello+sorelle)
  Permette di selezionare gli elementi "sorelle" che
   sono direttamente preceduti da un elemento
   "fratello"
  $(".A + .B")
  <ul>
       <li class="A">e1 </li>
       <li class="B">e2 </li>
       <li class="B">e3 </li>
       <li class="A">e4 </li>
       <li class="B">e5 </li>
       <li class="C">e4 </li>
       <li class="B">e5
       <ul>
               <li class="B"> e6 </li>
       </ul>
       </li>
  </ul>

                                                        20
Selettori CSS
$(fratello~sorelle)
  Permette
          di selezionare gli elementi "sorelle"
 che sono preceduti da un elemento "fratello"
  $(".A ~ .B")
  <ul>
       <li class="A">e1 </li>
       <li class="B">e2 </li>
       <li class="B">e3 </li>
       <li class="A">e4 </li>
       <li class="B">e5 </li>
       <li class="C">e4 </li>
       <li class="B">e5
       <ul>
               <li class="B"> e6 </li>
       </ul>
       </li>
  </ul>


                                              21
Selettori CSS
$(padri:has(discendenti))
  Permette
          di selezionare gli elementi
 "padri" che hanno almeno un
 "discendente" passato come parametro
  ◦  $("ul:has(a)")   tutti gli ul che hanno come
       discendente almeno un link
  ◦    $("div:has(img)") tutti i div che hanno come
       discendente almeno un’immagine




                                                      22
Selettori di Posizione
$(:first) $(:last)
  Permettono di selezionare il primo (:first)
 e ultimo (:last) elemento di un insieme
  ◦  $("a:first")   il primo link della pagina
  ◦    $("p.evidenziato:first") il primo paragrafo con
       class "evidenziato"
  ◦    $("img[src*=logo]:last") ultima immagine che
       contenga nell’indirizzo la parola logo




                                                    23
Selettori di Posizione
$(:first-child) $(:last-child)
  Permettono  di selezionare il primo (:first-
 child) e l’ultimo (:last-child) elemento
 discendente
  ◦  $("div:first-child")      il primo elemento
       contenuto in ogni div
  ◦    $("p.evidenziato:first-child") il primo elemento
       contenuto in ogni paragrafo con class
       "evidenziato"
  ◦    $("li:last-child") ultimo elemento contenuto in

       ogni li
                                                     24
Selettori di Posizione
$(:even) $(:odd)
  Permettonodi selezionare gli elementi in
 posizioni pari (:even) e dispari (:odd)
  ◦  $("table.zebra tr:even")     le righe in posizione
       pari delle tabelle che hanno class "zebra"
  ◦    $("li:odd") i list item di posizione dispari



  Questo selettore utilizza come indice iniziale
  lo 0



                                                          25
Selettori di Posizione
$(:nth-child(n)) $(:nth-child(even|odd))


  Permettonodi selezionare gli elementi
 discendenti in posizioni uguale a n (:nth-child
 (n)) , dispari (:nth-child(odd)) o pari (:nth-
 child(even))
  ◦  $("tr:nth-child(4)")   il quarto elemento contenuto
   in ogni tr
  ◦  $("tr:nth-chiled(even)")    gli elementi in posizione
   pari in ogni tr
  ◦  $("tr:nth-chiled(odd)")    gli elementi in posizione
   dispari in ogni tr

                                                            26
Selettori di Posizione
$(:eq(n)) $(:lt(n)) $(:gt(n))


  Permettonodi selezionare gli elementi in
 posizioni uguale a n (:eq(n)) , maggiore
 di n(:gt(n)) o minore di n(:lt(n))
  ◦  $("tr:eq(4)")   il quinto elemento tr
  ◦  $("tr:lt(4)")   i primi cinque tr
  ◦  $("tr:gt(4)")   dal sesto tr in poi

  Questo selettore utilizza come indice iniziale lo 0


                                                        27
Selettori Custom
◦  :button seleziona tutti i bottoni
◦  :checkbox seleziona tutte le checkbox
◦  :radio seleziona tutti i radio button
◦  :checked seleziona le check box e i radio button che sono
   selezionati
◦  :disabled , :enabled elementi di input disabilitati o
   abilitati
◦  :not(filter) negazione di un selettore
       $("li:not(.evidenziato)") gli elementi li che non hanno classe
        evidenziato
◦  :hidden elementi nascosti
◦  :visible elementi visisbili
◦  :text seleziona textbox
◦  :filter(selettore) applica un ulteriore selettore
   all'insieme selezionato!
◦  :contains(cerca) seleziona gli elementi che contengono il
   testo "cerca"

                                                                         28
OPERAZIONI SU OGGETTI
SELEZIONATI/CREATI




                        29
Operazione su gli oggetti selezionati/creati

Navigazione del DOM
    $(selettore).children([selettore])        figli diretti
     dell'insieme selezionato
     ◦  È possibile filtrare i figli con un selettore
                           discendenti
     $(selettore).find(selettore)

   dell'insieme selezionato
  $(selettore).next() elemento successivo a
   quello selezionato
  $(selettore).parent([selettore]) padre
   dell'elemento selezionato
  $(selettore).parents([selettore])

                                                               30
Operazione su gli oggetti selezionati/creati

Manipolazione del DOM
  Inserimento        di elementi
   ◦  after, append, before, prepend, html, text,
      wrap, clone, value
  Cancellazione
   ◦  empty, remove, removeAttr
  Modifica       Stile
   ◦  attr, addClass, removeClass, toggleClass, css,
      hide, show, toggle


                                                       31
Operazione su gli oggetti selezionati/creati

Esempi Manipolazione del DOM
$("<li>").text("testo lista").insertAfter("li:first");
//inserisce un elemento li appena creato dopo il primo li del
documento

$("div#principale").append("<p>dentro il div</p>");
 //inserisce un paragrafo dentro il div che ha id principale

$("input#email").value()
//valore della input box con id email

$("span").wrap("div")
//crea un div che contiene tutti gli elementi span della pagina

$("p.evidenziato").text("Sono evidenziato");
//imposta il testo dei paragrafi di classe evidenziano con la
stringa passata come parametro

$("img.logo").css("border","solid orange 3px");
//cambia lo stile a tutte le immagini di classe logo

                                                                32
Operazione su gli oggetti selezionati/creati

$(selettore).each()
  Permette di scorrere il vettore di elementi
   selezionati e di eseguire una funzione per
   ogni elemento
   $(img).each(function(i){
      $(this).attr("alt","immagine "+i);
   })




                                               33
Operazione su gli oggetti selezionati/creati

   Concatenazione operazioni
  E'possibile concatenare più azione su uno
  stesso selettore grazie al fatto che molte
  operazioni non alterano l'insieme di oggetti
  restituiti dal selettore.
$(.invisibile).hide().addClass("sparito")
//nasconde tutti gli elementi di classe invisibile e aggiunge
la classe sparito
$("<img>").attr("src","img/test.jpg").addClass("logo")
.appendTo("div#principale")
//crea un immagine con attributo src="img/test.jpg", di classe
logo e la appende al div con id principale




                                                                34
Operazione su gli oggetti selezionati/creati

       Concatenazione Avanzata .end()
  Alcune      funzioni alterano l'insiemi di oggetti
      restituiti dal selettore per cui occorre prestare
      attenzione!
1.    $(div p:first)              1.  Seleziona il primo paragrafo di ogni DIV
                                  2.  Aggiunge la classe primoParagrafo
2.    .addClass("primoParagrafo")
                                  3.  Seleziona il primo link del primoParagrafo
3.    .find("a:first")
                                      di ogni div
4.    .text("primo link")         4.  Modifica il testo in "primo link"
5.    .end()                      5.  Ritorna alla selezione precedente (primo
6.    .css("border","solid 5px");     paragrafo di ogni div)
                                  6.  Modifica lo stile del bordo




                                                                            35
GESTIONE EVENTI




                  36
Eventi supportati
                                         blur
                                unload           change
                       submit                             click


              select                                              dblclick



     scroll                                                              error



   resize



    mouse
                                 Eventi                                      focus



                                                                         keydown
     up


            mouse                                                 keypress
             over

                       mouse
                        up                                keyup
                                mouse
                                move     mouse   load
                                         down

                                                                                     37
Tipologia di Eventi Javascript
EVENTO                    DESCRIZIONE
blur, focus               Inviati ad un elemento quando rispettivamente perde il focus od ottiene il focus.
focusin, focusout         Inviato ad un elemento se esso o un suo discendente rispettivamente ottiene o perde il focus
load                      Inviato ad un elemento quando esso e tutti i suo discendenti sono stati completamente caricati
resize                    Inviato all'elemento windows quando la finestra del browser ha cambiato dimensioni
scroll                    Inviato ad un elemento quando l'utente ha effettuato lo scroll in un differente punto dell'elemento stesso
unload                    Inviato all'oggetto window quando l'utente naviga fuori dalla pagina (chiusura del browser, click su un link,
                          a volte anche il semplice refresh)
click, dbclick            Inviati ad un elemento quando il mouse è sopra di esso e viene effettuato un click o un doppio click

mousedown, mouseup        Inviati ad un elemento quando il mouse è sopra di esso e viene rispettivamente premuto o rilasciato il
                          bottone del mouse
mouseover, mouseout,      Eventi inviati all'elemento in cui il puntatore del mouse entre (mouseover), in cui esce (mouseout) o in cui si
mousemove                 sta mouvendo (mousemove)

keydown,keypress, keyup   Eventi inviati quando un tasto viene premuto (keydown) è stato rilasciato (keyup) o è stato premuto
                          (keypress)
select                    Inviato ad un elemento quando viene selezionato del test all'interno di esso. Questo evento è limitato agli
                          elementi <input type="text" /> e <textarea>

change                    Evento inviato ad un elemento che ha cambiato il proprio valore. Limitato a <select> <input> <textarea>

submit                    Elemento inviato quando l'utente tenta di fare il submit di un form

                                                                                                                                        38
bind
$(selettore).bind(evento,[dati],function(evento){…})


Permette di collegare gli eventi ad un selettore e di
eseguire la funzione associata
$(":text").bind('focusin', function(){
        this.addClass('inserimento');
}).bind('focusout',function(){
        this.removeClass('inserimento');
})

Per ogni casella di testo aggiunge la classe
inserimento quando il focus è sull'oggetto e rimuove
la stessa classe quando il focus non è più
dell'oggetto

                                                       39
Sintassi abbreviata eventi
  $(selettore).bind(evento,[dati],function(evento){…})


   $(selettore).evento([dati],function(evento){…})



$("li").click(function(){$(this).hide()})
$("#mostraNascosti").mouseover(function(){
         $("li:hidden").show();
})

//nasconde i listitem al click su di essi
//quando il mouse passa sopra l'elemento con id="mostraNascondi" gli elementi
li nascosti vengano visualizzati



 //esempio passaggio dati alle funzioni di callback degli eventi
 var messaggio="ciao mondo"
 $("li").click({msg:messaggio},function(evento){
          alert(evento.data.msg)});
                                                                                40
Proprietà Oggetto evento
  Le funzioni di callback (richiamate al verificarsi di
  ogni evento) hanno come parametro un oggetto che
  descrive l'evento occorso.
proprietà        Descrizione
.currentTarget   Elemento del DOM che ha rilanciato l'evento
.data            I dati opzionali passati dalla funzione bind
.pageX           Ascissa della posizione del mouse
.pageY           Ordinata della posizione del mouse
.target          Elemento del DOM in cui è stato generato l'evento
.timeStamp       Quando si è verificato un evento (millisecondi passati dal
                 1 gennaio 1970)
.type            Descrive la natura dell'evento
.which           Nel caso di eventi scatenati da mouse o tastiera indica (in
                 codice) quale bottone o tasto è stato premuto.
                 Per avere informazioni sul carattere inserito si
                 utilizza .keyCode                                             41
Funzioni Oggetto evento
  L'oggetto evento offre alcuni utili metodi

Metodo                        Descrizione
.preventDefault()             Non fa eseguire la funzione di default legata
                              all'evento.
                              Es. disattivare tutti i link di una pagina:
                              $("a").bind('click',function(evento){
                              evento.preventDefault();
                              })
.stopPropagation()            Impedisce l'inoltro dell'evento ad ogni
                              elemento padre
.stopImmediatePropagation()   Impedisce l'inoltro dell'evento ad ogni altro
                              elemento del DOM


                                                                              42
Lanciare eventi

  E'
    possibile tramite jQuery lanciare
  eventi, sia standard che personalizzati
            $(selettore).trigger(evento, [dati])
Esempio
$("a#link").trigger('click')

  ◦     invia un click all'ancora con id uguale a link
  Sintassi   abbreviata
                $(selettore).evento([dati])
Esempio
$("a#link").click()




                                                         43

Weitere ähnliche Inhalte

Andere mochten auch

V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009
nera24mx
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
Luciano Colosio
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
Sinergia Totale
 

Andere mochten auch (20)

Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
 
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
 
Apache Cordova: Overview and Introduction
Apache Cordova: Overview and IntroductionApache Cordova: Overview and Introduction
Apache Cordova: Overview and Introduction
 
V. liqviat 2009
V. liqviat 2009V. liqviat 2009
V. liqviat 2009
 
node.js everywhere
node.js everywherenode.js everywhere
node.js everywhere
 
Introduzione a node: cenni storici ecc
Introduzione a node: cenni storici eccIntroduzione a node: cenni storici ecc
Introduzione a node: cenni storici ecc
 
Corso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascriptCorso base di Tecnologie WEB - Primi passi in javascript
Corso base di Tecnologie WEB - Primi passi in javascript
 
Aulas linux
Aulas linuxAulas linux
Aulas linux
 
Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?Node.js: perche' tutto questo hype?
Node.js: perche' tutto questo hype?
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
Web base-03-js-numeri stringearray
Web base-03-js-numeri stringearrayWeb base-03-js-numeri stringearray
Web base-03-js-numeri stringearray
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di MilanoWorkshop AngularJs, Cordova, Ionic - Politecnico di Milano
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Roma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejsRoma linuxday 2013 - nodejs
Roma linuxday 2013 - nodejs
 
Corso Javascript
Corso JavascriptCorso Javascript
Corso Javascript
 
Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 

Ähnlich wie Introduzione a jQuery

Ähnlich wie Introduzione a jQuery (12)

jQuery e i suoi plugin
jQuery e i suoi pluginjQuery e i suoi plugin
jQuery e i suoi plugin
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
 
Html e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesignerHtml e Css - 4 | WebMaster & WebDesigner
Html e Css - 4 | WebMaster & WebDesigner
 
Django
DjangoDjango
Django
 
ASP.NET MVC 3 - Presentare i dati nella View
ASP.NET MVC 3 - Presentare i dati nella ViewASP.NET MVC 3 - Presentare i dati nella View
ASP.NET MVC 3 - Presentare i dati nella View
 
Lezione 11 - Javascript
Lezione 11 - JavascriptLezione 11 - Javascript
Lezione 11 - Javascript
 
jQuery - 4 | WebMaster & WebDesigner
jQuery - 4 | WebMaster & WebDesignerjQuery - 4 | WebMaster & WebDesigner
jQuery - 4 | WebMaster & WebDesigner
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
Introduzione a Ember.js
Introduzione a Ember.jsIntroduzione a Ember.js
Introduzione a Ember.js
 
Coding Day May 26th Un'architettura scalabile e modulare per il css
Coding Day May 26th Un'architettura scalabile e modulare per il cssCoding Day May 26th Un'architettura scalabile e modulare per il css
Coding Day May 26th Un'architettura scalabile e modulare per il css
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 

Kürzlich hochgeladen

Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
sasaselvatico
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
giorgiadeascaniis59
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
nico07fusco
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
lorenzodemidio01
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
lorenzodemidio01
 

Kürzlich hochgeladen (17)

Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 

Introduzione a jQuery

  • 1. Introduzione a jQuery Emiliano Castellina Dipartimento di Automatica e Informatica Politecnico di Torino Introduzione a jQuery by Emiliano Castellina is licensed under a Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported License.
  • 2. Sommario   Introduzione   Selettori   Operazioni sugli oggetti selezionati   Eventi 2
  • 4. Libri Consigliati   jQuery in Action ◦  Autori: Bear Bibeault and Yehuda Katz ◦  Febbraio, 2008 | 376 pagine ◦  ISBN: 1933988355   jQuery UI 1.7: The User Interface Library for jQuery ◦  Autore: Dan Wellman ◦  Novembre 2009 | 392 pagine ◦  ISBN : 1847199720 4
  • 5. Link utili   Sito web di jQuery: è possibile scaricare l’ultima versione della libreria, visualizzare la documentazione e tutorial ◦  http://jquery.com   Sito web di jQuery User Interface: libreria di componenti grafici di jQuery ◦  http://jqueryui.com/   Sito web di Eclipse: ambiente di sviluppo open source che supporta diversi linguaggi di programmazione. ◦  http://www.eclipse.org   Aptana: plugin di Eclipse per lo sviluppo di pagine web (html, css, javascript) ◦  http://www.aptana.com/downloads/start 5
  • 6. Perché jQuery?   Motto: Scrivi Meno, Fai di più   Facilita la selezione degli elementi del DOM tramite selettori CSS   Semplice da imparare   Cross-browser   Compatibile con altre librerie Javascript 6
  • 7. Operazioni Preliminari (1/2)   Scaricare l’ultima versione della libreria jQuery   http://code.jquery.com/jquery-1.5.1.min.js   Importare jQuery nella pagina web 7
  • 8. Operazioni Preliminari (2/2)   Creare uno script che al caricamento della pagina visualizzi una finestra di dialogo che mostri la versione corrente di jquery ◦  Aggiungere nell’header $ Scorciatoia per la Funzione richiamata quando il Stringa Versione funzione jQuery documento è completamente di jQuery caricato 8
  • 9. Oggetto jQuery() $()   Permette di selezionare e Creare elementi del DOM ◦  Può avere come parametro:   Selettore CSS $("p.evidenziato")   Restituisce un array di oggetti, eventualmente vuoto   Oggetti javascript $(this.value)   Restituisce un array di oggetti contenente l’elemento passato come parametro   Codice HTML $("<div>Ciao Mondo</div>")   Crea un elemento del DOM e restituisce un array di oggetti contenente l’elemento appena creato 9
  • 10. SELETTORI 10
  • 11. Selettori CSS $(elemento)   Permettedi selezionare gli elementi HTML passati come parametro ◦  $("p") tutti i paragrafi della pagina ◦  $("a") tutti i link (e ancore) della pagina ◦  $("a,p") tutti i link e i paragrafi della pagina 11
  • 12. Selettori CSS $(#idelemento)   Permette di selezionare l’elemento della pagina che ha l’id passato come parametro ◦  $("#principale") elemento della pagina con attributo id="principale" ◦  $("div#principale") div della pagina con attributo id="principale"   Essendo l’id univoco all’interno della pagina la selezione del div poteva essere omessa 12
  • 13. Selettori CSS $(.nomeclasse)   Permette di selezionare gli elementi della pagina che hanno la classe passata come parametro ◦  $(".evidenziato") elementi della pagina che hanno classe evidenziato ◦  $("div.evidenziato") tutti i div della pagina con classe evidenziato 13
  • 14. Selettori CSS $(elemento[attributo])   Permette di selezionare gli elementi della pagina che hanno l’attributo passato come parametro ◦  $("img[title]") tutte le immagini in cui è specificato l’attributo title ◦  $("input[value]") tutti gli elementi input in cui è specificato l’attributo value 14
  • 15. Selettori CSS $(elemento[attributo=x])   Permette di selezionare gli elementi della pagina che hanno l’attributo passato come parametro uguale al valore X ◦  $("img[title=‘logo’]") tutte le immagini in cui l’attributo titolo è uguale a ‘logo’ ◦  $("input[type=‘radio’]") tutti gli elementi input di tipo radio 15
  • 16. Selettori CSS $(elemento[attributoˆ=x])   Permette di selezionare gli elementi della pagina che hanno l’attributo passato come parametro che inizia per X ◦  $("img[title^='logo']") tutte le immagini in cui l’attributo titolo inizia con ‘logo’ ◦  $("a[hrefˆ=‘http://’]") tutti i link con indirizzo non relativo 16
  • 17. Selettori CSS $(elemento[attributo$=x])   Permette di selezionare gli elementi della pagina che hanno l’attributo passato come parametro che finisce per X ◦  $("img[src$='.png']") tutte le immagini con estensione png ◦  $("a[href$='.pdf']") tutti i link a file pdf 17
  • 18. Selettori CSS $(elemento[attributo*=x])   Permette di selezionare gli elementi della pagina che hanno l’attributo passato come parametro che contiene la stringa X ◦  $("img[title*='logo']") tutte le immagini in cui l’attributo titolo contiene la stringa ‘logo’ ◦  $("a[href*='polito.it']") tutti i link che contengono nell’indirizzo la stringa ‘polito.it’ 18
  • 19. Selettori CSS $(padre > figli)   Permettedi selezionare gli elementi "figli" che sono discendenti diretti dell’elemento "padre" ◦  $(div > ul) tutte le liste che sono contenute direttamente in un div ◦  $(div > li) errato!!! Selezionerebbe tutti gli elementi di una lista contenuti direttamente in un div. Gli elementi di una lista devono essere contenuti in elementi ul o ol 19
  • 20. Selettori CSS $(fratello+sorelle)   Permette di selezionare gli elementi "sorelle" che sono direttamente preceduti da un elemento "fratello" $(".A + .B") <ul> <li class="A">e1 </li> <li class="B">e2 </li> <li class="B">e3 </li> <li class="A">e4 </li> <li class="B">e5 </li> <li class="C">e4 </li> <li class="B">e5 <ul> <li class="B"> e6 </li> </ul> </li> </ul> 20
  • 21. Selettori CSS $(fratello~sorelle)   Permette di selezionare gli elementi "sorelle" che sono preceduti da un elemento "fratello" $(".A ~ .B") <ul> <li class="A">e1 </li> <li class="B">e2 </li> <li class="B">e3 </li> <li class="A">e4 </li> <li class="B">e5 </li> <li class="C">e4 </li> <li class="B">e5 <ul> <li class="B"> e6 </li> </ul> </li> </ul> 21
  • 22. Selettori CSS $(padri:has(discendenti))   Permette di selezionare gli elementi "padri" che hanno almeno un "discendente" passato come parametro ◦  $("ul:has(a)") tutti gli ul che hanno come discendente almeno un link ◦  $("div:has(img)") tutti i div che hanno come discendente almeno un’immagine 22
  • 23. Selettori di Posizione $(:first) $(:last)   Permettono di selezionare il primo (:first) e ultimo (:last) elemento di un insieme ◦  $("a:first") il primo link della pagina ◦  $("p.evidenziato:first") il primo paragrafo con class "evidenziato" ◦  $("img[src*=logo]:last") ultima immagine che contenga nell’indirizzo la parola logo 23
  • 24. Selettori di Posizione $(:first-child) $(:last-child)   Permettono di selezionare il primo (:first- child) e l’ultimo (:last-child) elemento discendente ◦  $("div:first-child") il primo elemento contenuto in ogni div ◦  $("p.evidenziato:first-child") il primo elemento contenuto in ogni paragrafo con class "evidenziato" ◦  $("li:last-child") ultimo elemento contenuto in ogni li 24
  • 25. Selettori di Posizione $(:even) $(:odd)   Permettonodi selezionare gli elementi in posizioni pari (:even) e dispari (:odd) ◦  $("table.zebra tr:even") le righe in posizione pari delle tabelle che hanno class "zebra" ◦  $("li:odd") i list item di posizione dispari Questo selettore utilizza come indice iniziale lo 0 25
  • 26. Selettori di Posizione $(:nth-child(n)) $(:nth-child(even|odd))   Permettonodi selezionare gli elementi discendenti in posizioni uguale a n (:nth-child (n)) , dispari (:nth-child(odd)) o pari (:nth- child(even)) ◦  $("tr:nth-child(4)") il quarto elemento contenuto in ogni tr ◦  $("tr:nth-chiled(even)") gli elementi in posizione pari in ogni tr ◦  $("tr:nth-chiled(odd)") gli elementi in posizione dispari in ogni tr 26
  • 27. Selettori di Posizione $(:eq(n)) $(:lt(n)) $(:gt(n))   Permettonodi selezionare gli elementi in posizioni uguale a n (:eq(n)) , maggiore di n(:gt(n)) o minore di n(:lt(n)) ◦  $("tr:eq(4)") il quinto elemento tr ◦  $("tr:lt(4)") i primi cinque tr ◦  $("tr:gt(4)") dal sesto tr in poi Questo selettore utilizza come indice iniziale lo 0 27
  • 28. Selettori Custom ◦  :button seleziona tutti i bottoni ◦  :checkbox seleziona tutte le checkbox ◦  :radio seleziona tutti i radio button ◦  :checked seleziona le check box e i radio button che sono selezionati ◦  :disabled , :enabled elementi di input disabilitati o abilitati ◦  :not(filter) negazione di un selettore   $("li:not(.evidenziato)") gli elementi li che non hanno classe evidenziato ◦  :hidden elementi nascosti ◦  :visible elementi visisbili ◦  :text seleziona textbox ◦  :filter(selettore) applica un ulteriore selettore all'insieme selezionato! ◦  :contains(cerca) seleziona gli elementi che contengono il testo "cerca" 28
  • 30. Operazione su gli oggetti selezionati/creati Navigazione del DOM   $(selettore).children([selettore]) figli diretti dell'insieme selezionato ◦  È possibile filtrare i figli con un selettore   discendenti $(selettore).find(selettore) dell'insieme selezionato   $(selettore).next() elemento successivo a quello selezionato   $(selettore).parent([selettore]) padre dell'elemento selezionato   $(selettore).parents([selettore]) 30
  • 31. Operazione su gli oggetti selezionati/creati Manipolazione del DOM   Inserimento di elementi ◦  after, append, before, prepend, html, text, wrap, clone, value   Cancellazione ◦  empty, remove, removeAttr   Modifica Stile ◦  attr, addClass, removeClass, toggleClass, css, hide, show, toggle 31
  • 32. Operazione su gli oggetti selezionati/creati Esempi Manipolazione del DOM $("<li>").text("testo lista").insertAfter("li:first"); //inserisce un elemento li appena creato dopo il primo li del documento $("div#principale").append("<p>dentro il div</p>"); //inserisce un paragrafo dentro il div che ha id principale $("input#email").value() //valore della input box con id email $("span").wrap("div") //crea un div che contiene tutti gli elementi span della pagina $("p.evidenziato").text("Sono evidenziato"); //imposta il testo dei paragrafi di classe evidenziano con la stringa passata come parametro $("img.logo").css("border","solid orange 3px"); //cambia lo stile a tutte le immagini di classe logo 32
  • 33. Operazione su gli oggetti selezionati/creati $(selettore).each()   Permette di scorrere il vettore di elementi selezionati e di eseguire una funzione per ogni elemento $(img).each(function(i){ $(this).attr("alt","immagine "+i); }) 33
  • 34. Operazione su gli oggetti selezionati/creati Concatenazione operazioni   E'possibile concatenare più azione su uno stesso selettore grazie al fatto che molte operazioni non alterano l'insieme di oggetti restituiti dal selettore. $(.invisibile).hide().addClass("sparito") //nasconde tutti gli elementi di classe invisibile e aggiunge la classe sparito $("<img>").attr("src","img/test.jpg").addClass("logo") .appendTo("div#principale") //crea un immagine con attributo src="img/test.jpg", di classe logo e la appende al div con id principale 34
  • 35. Operazione su gli oggetti selezionati/creati Concatenazione Avanzata .end()   Alcune funzioni alterano l'insiemi di oggetti restituiti dal selettore per cui occorre prestare attenzione! 1.  $(div p:first) 1.  Seleziona il primo paragrafo di ogni DIV 2.  Aggiunge la classe primoParagrafo 2.  .addClass("primoParagrafo") 3.  Seleziona il primo link del primoParagrafo 3.  .find("a:first") di ogni div 4.  .text("primo link") 4.  Modifica il testo in "primo link" 5.  .end() 5.  Ritorna alla selezione precedente (primo 6.  .css("border","solid 5px"); paragrafo di ogni div) 6.  Modifica lo stile del bordo 35
  • 37. Eventi supportati blur unload change submit click select dblclick scroll error resize mouse Eventi focus keydown up mouse keypress over mouse up keyup mouse move mouse load down 37
  • 38. Tipologia di Eventi Javascript EVENTO DESCRIZIONE blur, focus Inviati ad un elemento quando rispettivamente perde il focus od ottiene il focus. focusin, focusout Inviato ad un elemento se esso o un suo discendente rispettivamente ottiene o perde il focus load Inviato ad un elemento quando esso e tutti i suo discendenti sono stati completamente caricati resize Inviato all'elemento windows quando la finestra del browser ha cambiato dimensioni scroll Inviato ad un elemento quando l'utente ha effettuato lo scroll in un differente punto dell'elemento stesso unload Inviato all'oggetto window quando l'utente naviga fuori dalla pagina (chiusura del browser, click su un link, a volte anche il semplice refresh) click, dbclick Inviati ad un elemento quando il mouse è sopra di esso e viene effettuato un click o un doppio click mousedown, mouseup Inviati ad un elemento quando il mouse è sopra di esso e viene rispettivamente premuto o rilasciato il bottone del mouse mouseover, mouseout, Eventi inviati all'elemento in cui il puntatore del mouse entre (mouseover), in cui esce (mouseout) o in cui si mousemove sta mouvendo (mousemove) keydown,keypress, keyup Eventi inviati quando un tasto viene premuto (keydown) è stato rilasciato (keyup) o è stato premuto (keypress) select Inviato ad un elemento quando viene selezionato del test all'interno di esso. Questo evento è limitato agli elementi <input type="text" /> e <textarea> change Evento inviato ad un elemento che ha cambiato il proprio valore. Limitato a <select> <input> <textarea> submit Elemento inviato quando l'utente tenta di fare il submit di un form 38
  • 39. bind $(selettore).bind(evento,[dati],function(evento){…}) Permette di collegare gli eventi ad un selettore e di eseguire la funzione associata $(":text").bind('focusin', function(){ this.addClass('inserimento'); }).bind('focusout',function(){ this.removeClass('inserimento'); }) Per ogni casella di testo aggiunge la classe inserimento quando il focus è sull'oggetto e rimuove la stessa classe quando il focus non è più dell'oggetto 39
  • 40. Sintassi abbreviata eventi $(selettore).bind(evento,[dati],function(evento){…}) $(selettore).evento([dati],function(evento){…}) $("li").click(function(){$(this).hide()}) $("#mostraNascosti").mouseover(function(){ $("li:hidden").show(); }) //nasconde i listitem al click su di essi //quando il mouse passa sopra l'elemento con id="mostraNascondi" gli elementi li nascosti vengano visualizzati //esempio passaggio dati alle funzioni di callback degli eventi var messaggio="ciao mondo" $("li").click({msg:messaggio},function(evento){ alert(evento.data.msg)}); 40
  • 41. Proprietà Oggetto evento Le funzioni di callback (richiamate al verificarsi di ogni evento) hanno come parametro un oggetto che descrive l'evento occorso. proprietà Descrizione .currentTarget Elemento del DOM che ha rilanciato l'evento .data I dati opzionali passati dalla funzione bind .pageX Ascissa della posizione del mouse .pageY Ordinata della posizione del mouse .target Elemento del DOM in cui è stato generato l'evento .timeStamp Quando si è verificato un evento (millisecondi passati dal 1 gennaio 1970) .type Descrive la natura dell'evento .which Nel caso di eventi scatenati da mouse o tastiera indica (in codice) quale bottone o tasto è stato premuto. Per avere informazioni sul carattere inserito si utilizza .keyCode 41
  • 42. Funzioni Oggetto evento L'oggetto evento offre alcuni utili metodi Metodo Descrizione .preventDefault() Non fa eseguire la funzione di default legata all'evento. Es. disattivare tutti i link di una pagina: $("a").bind('click',function(evento){ evento.preventDefault(); }) .stopPropagation() Impedisce l'inoltro dell'evento ad ogni elemento padre .stopImmediatePropagation() Impedisce l'inoltro dell'evento ad ogni altro elemento del DOM 42
  • 43. Lanciare eventi   E' possibile tramite jQuery lanciare eventi, sia standard che personalizzati $(selettore).trigger(evento, [dati]) Esempio $("a#link").trigger('click') ◦  invia un click all'ancora con id uguale a link   Sintassi abbreviata $(selettore).evento([dati]) Esempio $("a#link").click() 43