SlideShare a Scribd company logo
write less.
 do more.
who are we?
Yehuda Katz
Andy Delcambre
  JQuery-Tutorial" />
How is this going to
       work?
Introduction to
    jQuery
Event Driven
 JavaScript
Labs!
Labs!
git clone git://github.com/adelcambre/jquery-tutorial.git
Introduction to
    jQuery
h1 {
  color: #999;
}

         UJS With jQuery
                 $(“h1”).click(function() {
                   $(this).fadeIn();
                 });
get some elements.
     but how?
CSS 3 plus
• div          • div:first       • div:header
• div#foo      • div:last        • div:animated
• div.class    • div:not(#foo)   • div:contains(txt)
• div, p, a    • div:even        • div:empty
• div p        • div:odd         • div:has(p)
• div > p      • div:eq(1)       • div:parent
• div + p      • div:gt(1)       • div:hidden
• div ~ p      • div:lt(1)       • div:visible
CSS 3 plus
• div[foo]            • :last-child   • :reset
• div[foo=bar]        • :only-child   • :button
• div[foo!=bar]       • :input        • :file
• div[foo^=bar]       • :text         • :hidden
• div[foo$=bar]       • :password     • :enabled
• div[foo*=bar]       • :radio        • :disabled
• :nth-child(2)       • :checkbox     • :checked
• :nth-child(even)    • :submit       • :selected
• :first-child        • :image
get some elements.
$(“table tr:nth-
child(even) > td:visible”)
do stuff.
$(“div”)
Returns jquery object
$(“div”).fadeIn()
   Returns jquery object
$(“div”).fadeIn()
.css(“color”, “green”)
      Returns jquery object
we call this chaining
Crazy chains
$(“ul.open”) // [ ul, ul, ul ]
    .children(“li”) // [ li, li, li ]
        .addClass(“open”) // [ li, li, li]
    .end() // [ ul, ul, ul ]
    .find(“a”) // [ a, a, a ]
        .click(function(){
            $(this).next().toggle();
            return false;
        }) // [ a, a, a ]
    .end(); // [ ul, ul, ul ]
Lab 1: Selectors
•Select every other row of the table
• Select the Checked checkboxes
• Select the first column of the table
• Select the top level of the outline
• Select any links to jquery.com
• Select any images that contain flowers
5 parts of jquery
        dom
      events
      effects
       ajax
      plugins
dom traversal
$(“div”).parent();
$(“div”).siblings();
$(“div”).next();
$(“div”).nextAll(“p”);
$(“div”).nextAll(“p:first”);



                               dom
$(“div”)

                          <body>




            <div>         <div>         <pre>




<p>   <p>           <p>           <p>    <p>    <p>




                                                      dom
$(“div#foo”).siblings()

                                   <body>




            <div id='foo'>         <div>         <pre>




<p>   <p>                    <p>           <p>    <p>    <p>




                                                               dom
$(“div”).next()

                          <body>




            <div>         <div>         <pre>




<p>   <p>           <p>           <p>    <p>    <p>




                                                      dom
$(“div”).nextall(“p”)

                       <body>




<div id='foo'>   <p>    <p>     <pre>   <p>




                                              dom
$(“div”).nextall(“p: rst”)

                        <body>




 <div id='foo'>   <p>    <p>     <pre>   <p>




                                               dom
nd
$(“div pre”)
$(“div”).find(“pre”)




                       dom
$(“div pre”)

                              <body>




              <div>           <div>         <pre>




<p>   <pre>           <pre>           <p>   <pre>   <p>




                                                          dom
$(“div”). nd(“pre”)

                                <body>




                <div>           <div>         <pre>




<p>     <pre>           <pre>           <p>   <pre>   <p>




                                                            dom
lter
$(“div:contains(some text)”)
$(“div”).filter(“:contains(some text)”)

$(“div”).filter(function() {
   return $(this).text().match(“some text”)
})


                                              dom
andSelf()
$(“div”).siblings().andSelf()
$(“div”).parent().andSelf()




                                dom
$(“div”).siblings().andself()

                                      <body>




               <div id='foo'>         <div>         <pre>




   <p>   <p>                    <p>           <p>    <p>    <p>




                                                                  dom
$(“p”).parent().andself()

                                    <body>




             <div id='foo'>         <div>         <pre>




 <p>   <p>                    <p>           <p>    <p>    <p>




                                                                dom
Lab 2: Traversal


• Select any text areas and their labels
• Any span’s parent
• All of the form elements from a form that PUT’s
attributes
$(“div”).attr(“id”) // returns id
$(“div”).attr(“id”, “hello”) // sets id to hello
$(“div”).attr(“id”, function() { return this.name })
$(“div”).attr({id: “foo”, name: “bar”})
$(“div”).removeAttr(“id”);


                                                       dom
classes
$(“div”).addClass(“foo”)
$(“div”).removeClass(“foo”)
$(“div”).toggleClass(“foo”)
$(“div”).hasClass(“foo”)



                              dom
other
$(“div”).html()
$(“div”).html(“<p>Hello</p>”)
$(“div”).text()
$(“div”).text(“Hello”)
$(“div”).val()
$(“div”).val(“Hello”)

                                dom
noticing a pattern?
manipulation
$(“div”).append(“<p>Hello</p>”)
$(“<p>Hello</p>”).appendTo(“div”)
$(“div”).after(“<p>Hello</p>”)
$(“<p>Hello</p>”).insertAfter(“div”)



                                       dom
way more...
http://docs.jquery.com
 http://api.jquery.com




                         dom
Lab 3: Manipulation
                   Note: Use the Lab 2 File again



• Add CSS4 to the list after CSS3
• Remove any images with Dogs
• Turn the ruby row red
• Add some default text to the input field
5 parts of jquery
        dom
      events
      effects
       ajax
      plugins
document ready
$(document).ready(function() { ... })
  Alias: jQuery(function($) { ... })
bind
$(“div”).bind(“click”, function() { ... })
 Alias: $(“div”).click(function() { ... })
“this” bound
refers to the element
e
$(“div”).click(function(e) { ... })
corrected event object
Property                            Correction
   target     The element that triggered the event (event delegation)
relatedTarget The element that the mouse is moving in (or out) of

  pageX/Y     The mouse cursor relative to the document

   which      mouse: 1 (left) 2 (middle) 3 (right)

              keypress: The ASCII value of the text input

  metaKey     Control on Windows and Apple on OSX
trigger
$(“div”).trigger(“click”)
 Alias: $(“div”).click()
triggerHandler
doesn’t trigger the browser’s default actions
custom events
$(“div”).bind(“myEvent”, function() { ... })
         $(“div”).trigger(“myEvent”)
hover
$(“div”).hover(function() { ... }, function() { ... })
toggle
$(“div”).toggle(function() { ... }, function() { ... })
1.3



                live
$(“div”).live(“click”, function() { ... })
5 parts of jquery
        dom
      events
      effects
       ajax
      plugins
Fades
    $(“div”).fadeIn()
$(“div”).fadeOut(“slow”)
slides
   $(“div”).slideUp(200)
$(“div”).slideDown(“slow”)
animate
       $(“div”).animate({height: “toggle”, opacity: “toggle”})
$(“div”).animate({fontSize: “24px”, opacity: 0.5}, {easing: “expo”})
Lab 4: Events and Effects
                       Note: Use the Lab 2 File again



• Fade out all of the divs
• Make each img grow when you mouseover them (and shrink
    again after you leave)
•   Make clicking an li collapse the sub list
5 parts of jquery
        dom
      events
      effects
       ajax
      plugins
make easy things easy
$(“div”).load(“some_url”);
$(“div”).load(“some_url”, {data: “foo”},
  function(text) { ... });
it’s easy to do it right
$.getJSON(“some_url”, function(json) { ... })
$.getJSON(“some_url”, {data: “foo”},
  function(json) { ... })
it’s consistent
$.get(“some_url”, function(text) { ... })
$.post(“some_url”, {data: “foo”},
  function(text) { ... })
and powerful
              $.ajax Options

•   async             •   global
•   beforeSend        •   ifModi ed
•   cache             •   jsonp
•   complete          •   processData
•   contentType       •   success
•   data              •   timeout
•   dataType          •   type
•   error
and powerful
                  global ajax settings
/* No Ajax requests exist, and one starts */
$(“div.progress”).ajaxStart(function() { $(this).show() });
/* The last Ajax request stops */
$(“div.progress”).ajaxStop(function() { $(this).hide() });
/* Any Ajax request is sent */
$(“p”).ajaxSend(function() { ... });
/* Any Ajax request completes (success or failure) */
$(“div”).ajaxComplete(function() { ... });
/* Any Ajax request errors out */
$(“div”).ajaxError(function() { ... });
/* Any Ajax request succeeds */
$(“div”).ajaxSucccess(function() { ... });
5 parts of jquery
        dom
      events
      effects
       ajax
      plugins
there are hundreds
which are important?
jquery ui
• Draggables           • Accordion
• Droppables           • Date Picker
• Sortables            • Dialog
• Selectables          • Slider        Widgets

• Resizables           • Tabs
          Primitives

                             http://ui.jquery.com
jquery one easy step:
ajaxify a form in
                  forms
 $(“form.remote”).ajaxForm()




       http://www.malsup.com/jquery/form/
form validation
specify validation rules in your markup




               http://bassistance.de/jquery-
             plugins/jquery-plugin-validation/
BASE



 metadata plugin
specify metadata for elements in markup

         <div data=”{some: ‘data’}”>
$(“div”).metadata().some // returns ‘data’



             http://jqueryjs.googlecode.com/svn/
                   trunk/plugins/metadata/
Event Driven
 JavaScript
http://github.com/
wycats/blue-ridge
jQuery on Rails
jQuery and RJS
Rails 3
Ajax and Rails
  $.getJSON(“/rails/action”)
Ajax and Rails
 respond_to do |format|
     format.json {
       render :json => obj
     }
 end
link_to_remote
link_to_remote "Delete this post",
  :update => "posts",
  :url => { :action => "destroy",
            :id => post.id }
link_to_remote
link_to "Delete this post",
   url(:action => "destroy",
       :id => post.id),
   :rel => "#posts"
link_to_remote
$(‘a.remote’).live(“click”, function() {
  $(this.rel).load(this.href)
});
form_remote_tag
<% form_remote_tag :url => ...,
   :update => “res” do -%>

<% form_tag :url => ...,
   :rel => “#res” do -%>
form_remote_tag
$(‘form’).each(function() {
   $(this).ajaxForm({ target: this.rel })
})
observe_ eld
<%=                       var lastTime = new Date;
observe_field :suggest,   $('#suggest')
 :url => {                 .live(“keyup”, function() {
    :action => :find },     if(new Date - lastTime > 250) {
 :frequency => 0.25,          var field = $('#suggest');
 :update => :suggest,         var url = field.attr('rel');
 :with => 'q'                 field.load(url,
%>                              {q: field.val()});
                            }
                            lastTime = new Date;
                          });
periodically_call_remote
periodically_call_remote(   setInterval(function() {
  :url => {                   $('#avg')
    :action => 'avgs' },        .load('/some/avgs');
  :update => 'avg',         }, 20000);
  :frequency => '20')

More Related Content

PDF
Learning jQuery made exciting in an interactive session by one of our team me...
PPTX
Jquery-overview
PDF
jQuery Essentials
PDF
Learning jQuery in 30 minutes
PDF
jQuery Basic API
PDF
Prototype & jQuery
PDF
Write Less Do More
PDF
jQuery Rescue Adventure
Learning jQuery made exciting in an interactive session by one of our team me...
Jquery-overview
jQuery Essentials
Learning jQuery in 30 minutes
jQuery Basic API
Prototype & jQuery
Write Less Do More
jQuery Rescue Adventure

What's hot (18)

PPTX
jQuery Fundamentals
PDF
Testing Web Applications with GEB
PPTX
jQuery from the very beginning
ODP
Introduction to jQuery
PPTX
jQuery Presentasion
PDF
jQuery Essentials
PPTX
jQuery
PPT
Propel sfugmd
PDF
The jQuery Divide
PDF
Using Templates to Achieve Awesomer Architecture
PDF
php plus mysql
PDF
Organizing Code with JavascriptMVC
DOCX
logic321
PPT
PDF
Functionality Focused Code Organization
KEY
Potential Friend Finder
PDF
Modern Application Foundations: Underscore and Twitter Bootstrap
jQuery Fundamentals
Testing Web Applications with GEB
jQuery from the very beginning
Introduction to jQuery
jQuery Presentasion
jQuery Essentials
jQuery
Propel sfugmd
The jQuery Divide
Using Templates to Achieve Awesomer Architecture
php plus mysql
Organizing Code with JavascriptMVC
logic321
Functionality Focused Code Organization
Potential Friend Finder
Modern Application Foundations: Underscore and Twitter Bootstrap
Ad

Viewers also liked (7)

PPTX
PI Dag Social Media, Online Marketing & Online Fondsenwerving voor nonprofit ...
PPT
PDF
Gut Impact Darmowy Fragment
PDF
InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価
PDF
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
PPT
Alba y andrea
PDF
HPC Cloud: Clouds on supercomputers for HPC
PI Dag Social Media, Online Marketing & Online Fondsenwerving voor nonprofit ...
Gut Impact Darmowy Fragment
InfiniBandをPCIパススルーで用いるHPC仮想化クラスタの性能評価
動的ネットワークパス構築と連携したエッジオーバレイ帯域制御
Alba y andrea
HPC Cloud: Clouds on supercomputers for HPC
Ad

Similar to JQuery-Tutorial" /> (20)

PDF
Introduction to jQuery
PPT
J query introduction
PDF
DOM Scripting Toolkit - jQuery
PDF
Visual jQuery
PDF
J query1.2.cheatsheet.v1.0
PDF
JQUERY TUTORIAL
PDF
jquery cheat sheet
PDF
jQuery1.2.cheatsheet.v1.0_1
PDF
jQuery1.2.cheatsheet.v1.0
PDF
jQuery1.2.cheatsheet.v1.0
PDF
J query1.2.cheatsheet.v1.0
PDF
J query1.2.cheatsheet.v1.0
PDF
Remy Sharp The DOM scripting toolkit jQuery
KEY
An in-depth look at jQuery
PDF
PPTX
PDF
The Dom Scripting Toolkit J Query
PDF
jQuery Internals + Cool Stuff
PPTX
Web technologies-course 11.pptx
PDF
jQuery Loves Developers - Oredev 2009
Introduction to jQuery
J query introduction
DOM Scripting Toolkit - jQuery
Visual jQuery
J query1.2.cheatsheet.v1.0
JQUERY TUTORIAL
jquery cheat sheet
jQuery1.2.cheatsheet.v1.0_1
jQuery1.2.cheatsheet.v1.0
jQuery1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0
Remy Sharp The DOM scripting toolkit jQuery
An in-depth look at jQuery
The Dom Scripting Toolkit J Query
jQuery Internals + Cool Stuff
Web technologies-course 11.pptx
jQuery Loves Developers - Oredev 2009

More from tutorialsruby (20)

PDF
&lt;img src="../i/r_14.png" />
PDF
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
PDF
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
PDF
&lt;img src="../i/r_14.png" />
PDF
&lt;img src="../i/r_14.png" />
PDF
Standardization and Knowledge Transfer – INS0
PDF
xhtml_basics
PDF
xhtml_basics
PDF
xhtml-documentation
PDF
xhtml-documentation
PDF
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
PDF
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
PDF
HowTo_CSS
PDF
HowTo_CSS
PDF
BloggingWithStyle_2008
PDF
BloggingWithStyle_2008
PDF
cascadingstylesheets
PDF
cascadingstylesheets
&lt;img src="../i/r_14.png" />
TopStyle Help &amp; &lt;b>Tutorial&lt;/b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting &lt;b>...&lt;/b>
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
Standardization and Knowledge Transfer – INS0
xhtml_basics
xhtml_basics
xhtml-documentation
xhtml-documentation
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
HowTo_CSS
HowTo_CSS
BloggingWithStyle_2008
BloggingWithStyle_2008
cascadingstylesheets
cascadingstylesheets

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
KodekX | Application Modernization Development
PDF
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
AI And Its Effect On The Evolving IT Sector In Australia - Elevate
PDF
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
PPTX
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Sensors and Actuators in IoT Systems using pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Transforming Manufacturing operations through Intelligent Integrations
PPTX
Big Data Technologies - Introduction.pptx
Empathic Computing: Creating Shared Understanding
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
KodekX | Application Modernization Development
GDG Cloud Iasi [PUBLIC] Florian Blaga - Unveiling the Evolution of Cybersecur...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
20250228 LYD VKU AI Blended-Learning.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
AI And Its Effect On The Evolving IT Sector In Australia - Elevate
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Advanced Soft Computing BINUS July 2025.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Spectral efficient network and resource selection model in 5G networks
Reach Out and Touch Someone: Haptics and Empathic Computing
Sensors and Actuators in IoT Systems using pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Transforming Manufacturing operations through Intelligent Integrations
Big Data Technologies - Introduction.pptx

JQuery-Tutorial" />