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
jquery cheat sheet
PDF
jQuery1.2.cheatsheet.v1.0
PDF
jQuery1.2.cheatsheet.v1.0
PDF
J query1.2.cheatsheet.v1.0
PDF
JQUERY TUTORIAL
PDF
Visual jQuery
PDF
jQuery1.2.cheatsheet.v1.0_1
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
jquery cheat sheet
jQuery1.2.cheatsheet.v1.0
jQuery1.2.cheatsheet.v1.0
J query1.2.cheatsheet.v1.0
JQUERY TUTORIAL
Visual jQuery
jQuery1.2.cheatsheet.v1.0_1
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
cuic standard and advanced reporting.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
MYSQL Presentation for SQL database connectivity
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
cuic standard and advanced reporting.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
Encapsulation_ Review paper, used for researhc scholars
Programs and apps: productivity, graphics, security and other tools
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
Diabetes mellitus diagnosis method based random forest with bat algorithm
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25-Week II
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Unlocking AI with Model Context Protocol (MCP)
MYSQL Presentation for SQL database connectivity
MIND Revenue Release Quarter 2 2025 Press Release
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

JQuery-Tutorial" />