SlideShare a Scribd company logo
Yearning jQuery
Hi, I’m Remy / @rem

Screencast @
jqueryfordesigners.com

Questions: interrupt me
& ask!
Yearning jQuery
1. Build without jQuery.

2. Design the start and end of your
  effects without jQuery.

3. Add jQuery a little at a time.
(a lot of it is...)


        "all about CSS"

                      Me, to many a colleague
@rem
     Remy Sharp



Dear designer/dev: if you're using
JavaScript to do a job that CSS could have
done perfectly well, you've lost some
points in my book. Sorry
@rem
     Remy Sharp



The day someone loses business because
an animated transition wasn't used to
reveal a screenshot: I'll sell my left nut on
eBay. #cssinstead
What we're covering

• Getting friendly with the $
• DOM navigation & manipulation
• Events
• Ajax
• Tips
APIs         Blogs, tutorials, screencasts,
 docs.jquery.com
                    plugins, development sprints
  api.jquery.com
 visualjquery.com



  Twitter                         forum.jquery.com
  @jquery           Help!
@jquerysites
 @jqueryui
                    IRC channel
             irc.freenode.net/#jquery
jsbin.com
Bling Function
Yearning jQuery
It means no more of this
var tables = document.getElementsByTagName('table');
for (var t = 0; t < tables.length; t++) {
!   var rows = tables[t].getElementsByTagName('tr');
!   for (var i = 1; i < rows.length; i += 2) {
        if (!/(^|s)odd(s|$)/.test(rows[i].className)) {
            rows[i].className += ' odd';
        }
    }
}
jQuery simplifies


$('table tr:nth-child(odd)').addClass('odd');
jQuery simplifies

jQuery function

$('table tr:nth-child(odd)').addClass('odd');
jQuery simplifies

jQuery function

$('table tr:nth-child(odd)').addClass('odd');


             CSS expression
jQuery simplifies

jQuery function            jQuery method

$('table tr:nth-child(odd)').addClass('odd');


             CSS expression
jQuery simplifies


$('table tr:nth-child(odd)').addClass('odd');
$('just css')
Tools of the Trade
• Firefox: Firebug (& FireQuery*)
• Safari & Chrome: Web Inspector
• Opera: DragonFly
• IE: Web Developer Toolbar
Yearning jQuery
Yearning jQuery
Yearning jQuery
Tip

      $.fn.jquery

        (little 'q')
Let's play.

http://twitter.com
jQuery on every site?
        No Problem.
http://bit.ly/9JAcCj
Let's play.
Installing jQuery
dev or min?
Hosting options
  • Host it yourself (good for offline
    dev)

  • Hotlink it:
   • Media Temple
   • Microsoft
   • Google (my pick)
http://docs.jquery.com/Downloading_jQuery
CDN FTW
Tip: keep a copy on
  your machine
Where does it all go?
• jQuery first
• Then jQuery plugins
• Then your code
• Other JavaScript libraries
• jQuery last library
• Then jQuery plugin scripts
• Then your code
<html>
<head>
  <styles>
  <!-- make me beautiful -->
  </styles>
</head>
<body>
  <content>
  <!-- make me learned -->
  </content>
  <behaviour>
  <!-- ooo, matron -->
  </behaviour>
</body>
</html>
<html>
                 <head>
                   <styles>
 Styles first      <!-- make me beautiful -->
let's the page     </styles>
                 </head>
   render
                 <body>
  without          <content>
   scripts         <!-- make me learned -->
                   </content>
  blocking
                   <behaviour>
                   <!-- ooo, matron -->
                   </behaviour>
                 </body>
                 </html>
<html>
                 <head>
                   <styles>
                   <!-- make me beautiful -->
 Then your         </styles>
  content,       </head>
again so that    <body>
                   <content>
it's delivered
                   <!-- make me learned -->
   to your         </content>
 visitor as        <behaviour>
                   <!-- ooo, matron -->
  early as
                   </behaviour>
  possible       </body>
                 </html>
<html>
               <head>
                 <styles>
                 <!-- make me beautiful -->
                 </styles>
               </head>
               <body>
Finally, add
                 <content>
   your          <!-- make me learned -->
behaviour,       </content>
the jQuery       <behaviour>
                 <!-- ooo, matron -->
 and sexy
                 </behaviour>
magic jazz.    </body>
               </html>
$(document).ready(function () {

      // < YOU >

});
$(document).ready(function () {

      // < YOU >

});
$(function () {

      // < YOU >

});
Tip
jQuery(function ($) {

      // < YOU >

});

       Useful when giving code to a client
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8 />
<title>My first jQuery page</title>
</head>
<body>
<h1>Remy woz 'ere</h1>
<p>Lorem ipsum dolor sit amet.</p>
<script src="jquery.min.js"></script>
<script>
$(function () {
    // < YOU >
});
</script>
</body>
</html>
Is it jQuery or $?
It's both.
$('table tr:nth-child(odd)')
jQuery('table tr:nth-child(odd)')
$('table tr:nth-child(odd)')
∞∞∞ Chaining ∞∞∞
$('div').show().hide().slideUp().slideDown();
$('div').show().hide().slideUp().slideDown();



            Get the divs,
$('div').show().hide().slideUp().slideDown();



          and show them,
$('div').show().hide().slideUp().slideDown();



          now hide them,
$('div').show().hide().slideUp().slideDown();



    and then slide them up,
$('div').show().hide().slideUp().slideDown();



then finally slide them down.
Can't chain text getters




.val() .html() .text() .css(prop) .attr(prop), etc
Gotc ha
  & Tip

  if ( $('foo') ) {
    doAmazing();
  }
1) $('foo')
2) $()
3) []
4) [].join(',') // works
if ( $('foo') ) {
  doAmazing();
}
if ( $('foo').length ) {
  doAmazing();
}
$('el').doStuff
        vs
  $.doStuff
$('el').doStuff
 runs against
  everything
   matched.
$.doStuff
is a utility.
Deprecated

$.browser.version
$.browser.msie
$.browser.safari
$.browser.webkit
Doing stuff
$('a').click(function () {
  alert('I got clicked');
  return false;
});
$('a').click(function () {
  alert('I got clicked');
  return false;
});


      Find the anchors
$('a').click(function () {
  alert('I got clicked');
  return false;
});


    when they're clicked
$('a').click(function () {
  alert('I got clicked');
  return false;
});

run this function - don't worry
   about the crazy syntax.
$('a').click(function () {
  alert('I got clicked');
  return false;
});

 Cancel the browser's default
 action, which is to redirect.
$('a').click(function(event){
   event.preventDefault();
   alert('I got clicked');
 });

Same thing as cancelling (almost),
  this is useful for debugging.
• click, dblclick
• mousedown, mouseup, mousemove
  mouseover, mouseout, mouseenter
  mouseleave

• keydown, keypress, keyup
• submit, change, blur, focus, select
• scroll, resize, load, error
Tabs freakin' everywhere!
Yearning jQuery
Yearning jQuery
Yearning jQuery
Yearning jQuery
You get the idea.
A tabbing system is...

• A group of "panels"
• Tabs (or links) pointing to a panel
• Clicking tab, hides all panels, then
  shows just one
...the content can
 also be be Ajaxy
A few words on this
this is the element
that the event is
happening to.
$('a').click(function () {
  console.log(this);
});


this is the anchor element, not the jQuery
wrapped element.
Common mistake
$('a').click(function () {
  setTimeout(function () {
    $(this).text("I'm alive!");
  }, 1000);
});
Common mistake
$('a').click(function () {
  setTimeout(function () {
    $(this).text("I'm alive!");
  }, 1000);
});


this is the window object, not the link
Common mistake
$('a').click(function () {
  var el = this;
  setTimeout(function () {
    $(el).text("I'm alive!");
  }, 1000);
});
Live codin' time!

     tabs.html
Events
$('input').keydown(function (event) {
  // what's the event arg?
});
•.keyup(fn), .click(fn), etc
•.bind(type, fn)
•.trigger(type), unbind(type)
•.one(type, fn)
Tip

      Clickables
$.event.special.click = {
   setup: function() {
      $(this).css('cursor','pointer');
      return false;
   },
   teardown: function() {
      $(this).css('cursor','');
      return false;
   }
};

                 All credit to David Walsh
Problem
<h1>Super Ted</h1>
               <img src="superted.jpg">
 When the
               <img src="spotty.jpg">
 page has      <img src="txspete.jpg">
 finished      <script src="jquery.js">
               <script>
loading, the
               $('img').click(function(){
jQuery runs      showDetails(this);
               });
               </script>
<h1>Super Ted</h1>
  Clicking     <img src="superted.jpg">
               <img src="spotty.jpg">
these images
               <img src="txspete.jpg">
  "shows       <script src="jquery.js">
  details"     <script>
               $('img').click(function(){
                 showDetails(this);
               });
               </script>
<h1>Super Ted</h1>
                <img src="superted.jpg">
 Now Ajax       <img src="spotty.jpg">
(or something   <img src="txspete.jpg">
else) add new   <script src="jquery.js">
                <script>
images to the   $('img').click(function(){
    page          showDetails(this);
                });
                </script>
<h1>Super Ted</h1>
                <img src="superted.jpg">
 Now Ajax       <img src="spotty.jpg">
                <img src="txspete.jpg">
(or something
                <img src="mothernature.jpg">
else) add new   <script src="jquery.js">
images to the   <script>
                $('img').click(function(){
    page
                  showDetails(this);
                });
                </script>
<h1>Super Ted</h1>
                <img src="superted.jpg">
                <img src="spotty.jpg">
Clicking this   <img src="txspete.jpg">
image doesn't   <img src="mothernature.jpg">
do anything.    <script src="jquery.js">
                <script>
                $('img').click(function(){
                  showDetails(this);
                });
                </script>
Solution: delegation
<h1>Super Ted</h1>
<img src="superted.jpg">
<img src="spotty.jpg">
<img src="txspete.jpg">
<script src="jquery.js">
<script>
$('#superTed').delegate('img','click',function(){
  showDetails(this);
});
</script>
Yearning jQuery
These images
are loaded after
 the DOM has
loaded via Ajax
We're going to "delegate" the
task of listening for particular
     events to this <div>
We've "delegate" clicks,
looking for the "img" selector
$('div').delegate('img','click',function(){
  /* do funky stuff */
});
Now, any new images inserted in this
<div> can be clicked and will fire the
       "funky stuff" function
Ajax   Warning: wear your tech-hat
No brainer Ajax
.load
Yearning jQuery
Example
$('#detail').load('page.html');
$('#detail').load('page.html #id');
1. Ajax load the page

2. Search for the selector passed
  (#dizzy)

3. Squirt contents found into original
  selector
$('#tabs a').click(function (event) {
  // this.pathname = 'ajax-load-detail.html'
  $('#detail').load(this.pathname);
  return false;
});
this.hash

$('#tabs a').click(function (event) {
  $('#detail').load(this.pathname + ' ' +
this.hash);
  return false;
});
JSON
JavaScript Object
{
    screen_name : "@rem",
    height : "short",
    fingers : 5,
    brit : true
}
JSON
{
    "screen_name": "@rem",
    "height": "short",
    "fingers": 5,
    "brit": true
}
JSONP WTF
JSON+...
{
    "screen_name": "@rem",
    "height": "short",
    "fingers": 5,
    "brit": true
}
JSON+Padding
callback({
 "screen_name": "@rem",
 "height": "short",
 "fingers": 5,
 "brit": true
});
Getting other
people's data
$.getJSON
Remember =?
Twitter
ajax/twitter.html
$(document).ready(function () {
  $.getJSON('http://twitter.com/statuses/user_timeline/rem.json?callback=?',
  function (data) {
    $('#tweets').empty();

    $.each(data, function (i, item) {
      $('#tweets').append('<li class="tweet">' + item.text + '</li>');
    });
  });
});
Loading...




Giving users
 feedback
Ajax order

1. ajaxStart

2. ajaxSuccess (or ajaxError)

3. ajaxComplete


    http://api.jquery.com/?s=ajax
$('#status').ajaxStart(function () {
  $(this).fadeIn();
}).ajaxComplete(function () {
  $(this).fadeOut();
});
Deferreds
$.get('foo.html', function (html) {
var jqXHR = $.get('foo.html');
  $('#latest').append(html);
});
jqXHR.done(function (html) {
  $('#latest').append(html);
});
$.ajax({
  url: 'foo.json',
  dataType: 'json',
  success: function () {
     // this === xhr
  },
  error: function () {

  }
});
$.ajax({
  url: 'foo.json',
  dataType: 'json',
  context: document.body,
  success: function () {
     // this === body element
  },
  error: function () {

  }
});
var jqXHR = $.ajax({
  url: 'foo.json',
  dataType: 'json',
  context: document.body
});

jqXHR.then(success, fail);
var jqXHR = $.ajax({
  url: 'foo.json',
  dataType: 'json',
  context: document.body
});

jqXHR.then(success, fail);

// much later in the code

jqXHR.done(success2);
jqXHR is a
promise
Yearning jQuery
Yearning jQuery
var jqXHR = $.ajax({
  url: 'foo.json',
  dataType: 'json',
  context: document.body
});

// much later in the code

jqXHR.done(success);
.done(ok)   // success
.fail(fail) // error
.always(fn) // complete
.then(ok, fail)
Plugins
What’s a plugin?
A plugin is nothing more than a
custom jQuery method created to
extend the functionality of the jQuery
object


$(‘ul’).myPlugin()
Plugin design in 6 steps
Step 1:
create a private
scope for $ alias
<!DOCTYPE html><html><body>
<script src=”jquery.js”></script>
<script>
(function ($) {

})(jQuery);
</script></body></html>
Step 2:
 attach plugin to fn
alias (aka prototype)
<!DOCTYPE html><html><body>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  $(this).text(
     $(this).text().replace(/hate/g, ‘love’)
  );
}; // end of plugin
})(jQuery);
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  $(this).text(
     $(this).text().replace(/hate/g, ‘love’)
  );
}; // end of plugin
})(jQuery);

$(‘p’).notHate();
</script></body></html>
Step 3:
add implicit iteration
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g, ‘love’)
    );
  });
}; // end of plugin
})(jQuery);

$(‘p’).notHate();
</script></body></html>
Step 4:
enable chaining
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g, ‘love’)
    );
  });
}; // end of plugin
})(jQuery);

$(‘p’).notHate().hide();
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
 this == jQuery
(function ($) {
$.fn.notHate = function () {
  return this.each(function () {
     $(this).text(
        $(this).text().replace(/hate/g, ‘love’)
     );
  });
}; // end of plugin
})(jQuery);

$(‘p’).notHate().hide();
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
 this == jQuery
(function ($) {
$.fn.notHate = function () {
  return this.each(function () {
     $(this).text(
        $(this).text().replace(/hate/g, ‘love’)
     );
  });
}; // end of == DOM element
           this plugin
})(jQuery);

$(‘p’).notHate().hide();
</script></body></html>
Step 5:
add default options
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ $.fn.notHate.defaults.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate();
</script></body></html>
Step 6:
add custom options
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function () {
  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ $.fn.notHate.defaults.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function (options) {
  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ $.fn.notHate.defaults.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function (options) {
  var settings = $.extend({},
  ➥ $.fn.notHate.defaults, options);

  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ $.fn.notHate.defaults.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
<!DOCTYPE html><html><body>     http://jsbin.com/ifuga/edit
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function (options) {
  var settings = $.extend({},
  ➥ $.fn.notHate.defaults, options);

  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ settings.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
Yearning jQuery
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function (options) {
  var settings = $.extend({},
  ➥ $.fn.notHate.defaults, options);

  return this.each(function () {
    $(this).text(
       $(this).text().replace(/hate/g,
       ➥ settings.text)
    );
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
<!DOCTYPE html><html><body>
<p>I hate jQuery!</p>
<p>I mean really hate jQuery!</p>
<script src=”jquery.js”></script>
<script>
(function ($) {
$.fn.notHate = function (options) {
  var settings = $.extend({},
  ➥ $.fn.notHate.defaults, options);

  return this.text(function (i, text) {
    return text.replace(/hate/g,
      ➥ settings.text);
  });
}; // end of plugin
$.fn.notHate.defaults = {text:‘love’};
})(jQuery);

$(‘p’).notHate({text: ‘love-love-love’});
</script></body></html>
Poorly
designed
 plugins
$.fn.myplugin = function () {
  var me = $(this).each(function() {
    return $(this).bind('someEvent', function () {
      // does something
    });
  });

  return me;
};
$.fn.myplugin = function () {
  var me = $(this).each(fn);

  return me;
};
$.fn.myplugin = function () {
  return $(this).each(fn);
};
$.fn.myplugin = function () {
  return $(this).each(function() {
    return $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
  return $(this).each(function() {
    return $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
  return this.each(function() {
    return $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
  return this.each(function() {
    return $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
  return this.each(function() {
    $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
  return this.each(function() {
    $(this).bind('someEvent', function () {
      // does something
    });
  });
};
$.fn.myplugin = function () {
   return this.bind('someEvent', function () {
     // does something
  });
};
(function ($) {
  $.fn.myplugin = function () {
    return this.bind('someEvent', function () {
       // does something
     });
  };
})(jQuery);
Questions?
      To contact me after my presentation
      – text NHT to INTRO (46876)


      Or --
      remy@leftlogic.com
      @rem
Ad

More Related Content

What's hot (20)

JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)
jeresig
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
deimos
 
jQuery (BostonPHP)
jQuery (BostonPHP)jQuery (BostonPHP)
jQuery (BostonPHP)
jeresig
 
DOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQueryDOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQuery
Remy Sharp
 
jQuery (MeshU)
jQuery (MeshU)jQuery (MeshU)
jQuery (MeshU)
jeresig
 
Polymer - pleasant client-side programming with web components
Polymer - pleasant client-side programming with web componentsPolymer - pleasant client-side programming with web components
Polymer - pleasant client-side programming with web components
psstoev
 
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KZepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Thomas Fuchs
 
jQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and BlingjQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
jQuery Essentials
jQuery EssentialsjQuery Essentials
jQuery Essentials
Bedis ElAchèche
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
gerbille
 
HTML,CSS Next
HTML,CSS NextHTML,CSS Next
HTML,CSS Next
지수 윤
 
YouDrup_in_Drupal
YouDrup_in_DrupalYouDrup_in_Drupal
YouDrup_in_Drupal
tutorialsruby
 
jQuery UI and Plugins
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and Plugins
Marc Grabanski
 
Processing and Processing.js
Processing and Processing.jsProcessing and Processing.js
Processing and Processing.js
jeresig
 
Intro to HTML5
Intro to HTML5Intro to HTML5
Intro to HTML5
Jussi Pohjolainen
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginning
Anis Ahmad
 
jQuery: Events, Animation, Ajax
jQuery: Events, Animation, AjaxjQuery: Events, Animation, Ajax
jQuery: Events, Animation, Ajax
Constantin Titarenko
 
jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009
Remy Sharp
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig
 
Prototype & jQuery
Prototype & jQueryPrototype & jQuery
Prototype & jQuery
Remy Sharp
 
JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)JavaScript 1.5 to 2.0 (TomTom)
JavaScript 1.5 to 2.0 (TomTom)
jeresig
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
deimos
 
jQuery (BostonPHP)
jQuery (BostonPHP)jQuery (BostonPHP)
jQuery (BostonPHP)
jeresig
 
DOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQueryDOM Scripting Toolkit - jQuery
DOM Scripting Toolkit - jQuery
Remy Sharp
 
jQuery (MeshU)
jQuery (MeshU)jQuery (MeshU)
jQuery (MeshU)
jeresig
 
Polymer - pleasant client-side programming with web components
Polymer - pleasant client-side programming with web componentsPolymer - pleasant client-side programming with web components
Polymer - pleasant client-side programming with web components
psstoev
 
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KZepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Thomas Fuchs
 
jQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and BlingjQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
gerbille
 
Processing and Processing.js
Processing and Processing.jsProcessing and Processing.js
Processing and Processing.js
jeresig
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginning
Anis Ahmad
 
jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009jQuery Loves Developers - Oredev 2009
jQuery Loves Developers - Oredev 2009
Remy Sharp
 
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig
 
Prototype & jQuery
Prototype & jQueryPrototype & jQuery
Prototype & jQuery
Remy Sharp
 

Viewers also liked (9)

predefined and user defined functions
predefined and user defined functionspredefined and user defined functions
predefined and user defined functions
Swapnil Yadav
 
Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)
Vidyasagar Mundroy
 
State of jQuery '09
State of jQuery '09State of jQuery '09
State of jQuery '09
jeresig
 
TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
 TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
finance9
 
Javascript jQuery jQuery Ui
Javascript jQuery jQuery UiJavascript jQuery jQuery Ui
Javascript jQuery jQuery Ui
Tom Friedhof
 
Fundamental JQuery
Fundamental JQueryFundamental JQuery
Fundamental JQuery
Achmad Solichin
 
HTTP & HTML & Web
HTTP & HTML & WebHTTP & HTML & Web
HTTP & HTML & Web
Peter R. Egli
 
jQuery PPT
jQuery PPTjQuery PPT
jQuery PPT
Dominic Arrojado
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
Arulmurugan Rajaraman
 
predefined and user defined functions
predefined and user defined functionspredefined and user defined functions
predefined and user defined functions
Swapnil Yadav
 
Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)Database Systems - SQL - DDL Statements (Chapter 3/2)
Database Systems - SQL - DDL Statements (Chapter 3/2)
Vidyasagar Mundroy
 
State of jQuery '09
State of jQuery '09State of jQuery '09
State of jQuery '09
jeresig
 
TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
 TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
TIAA Traditional Annuity: Adding Safety and Stability to Retirement Portfolios
finance9
 
Javascript jQuery jQuery Ui
Javascript jQuery jQuery UiJavascript jQuery jQuery Ui
Javascript jQuery jQuery Ui
Tom Friedhof
 
Ad

Similar to Yearning jQuery (20)

Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
Rob Bontekoe
 
Client-side Transformations
Client-side TransformationsClient-side Transformations
Client-side Transformations
John Boxall
 
jQuery and Rails, Sitting in a Tree
jQuery and Rails, Sitting in a TreejQuery and Rails, Sitting in a Tree
jQuery and Rails, Sitting in a Tree
adamlogic
 
Creating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web ComponentsCreating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web Components
Rachael L Moore
 
jQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't KnowjQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't Know
girish82
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
Frank de Jonge
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.js
TechExeter
 
J query
J queryJ query
J query
Manav Prasad
 
Cheap frontend tricks
Cheap frontend tricksCheap frontend tricks
Cheap frontend tricks
ambiescent
 
jQuery Basic API
jQuery Basic APIjQuery Basic API
jQuery Basic API
Hyeonseok Shin
 
Jquery
JqueryJquery
Jquery
PaRa Vaishnav
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
Guy Royse
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
Mevin Mohan
 
HirshHorn theme: how I created it
HirshHorn theme: how I created itHirshHorn theme: how I created it
HirshHorn theme: how I created it
Paul Bearne
 
Introduction to jQuery - Barcamp London 9
Introduction to jQuery - Barcamp London 9Introduction to jQuery - Barcamp London 9
Introduction to jQuery - Barcamp London 9
Jack Franklin
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
Inbal Geffen
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
Inbal Geffen
 
Jquery News Packages
Jquery News PackagesJquery News Packages
Jquery News Packages
UC Berkeley Graduate School of Journalism
 
Private slideshow
Private slideshowPrivate slideshow
Private slideshow
sblackman
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
Eb Styles
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
Rob Bontekoe
 
Client-side Transformations
Client-side TransformationsClient-side Transformations
Client-side Transformations
John Boxall
 
jQuery and Rails, Sitting in a Tree
jQuery and Rails, Sitting in a TreejQuery and Rails, Sitting in a Tree
jQuery and Rails, Sitting in a Tree
adamlogic
 
Creating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web ComponentsCreating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web Components
Rachael L Moore
 
jQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't KnowjQuery - 10 Time-Savers You (Maybe) Don't Know
jQuery - 10 Time-Savers You (Maybe) Don't Know
girish82
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.js
TechExeter
 
Cheap frontend tricks
Cheap frontend tricksCheap frontend tricks
Cheap frontend tricks
ambiescent
 
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptjQuery & 10,000 Global Functions: Working with Legacy JavaScript
jQuery & 10,000 Global Functions: Working with Legacy JavaScript
Guy Royse
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
Mevin Mohan
 
HirshHorn theme: how I created it
HirshHorn theme: how I created itHirshHorn theme: how I created it
HirshHorn theme: how I created it
Paul Bearne
 
Introduction to jQuery - Barcamp London 9
Introduction to jQuery - Barcamp London 9Introduction to jQuery - Barcamp London 9
Introduction to jQuery - Barcamp London 9
Jack Franklin
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
Inbal Geffen
 
Jqeury ajax plugins
Jqeury ajax pluginsJqeury ajax plugins
Jqeury ajax plugins
Inbal Geffen
 
Private slideshow
Private slideshowPrivate slideshow
Private slideshow
sblackman
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
Eb Styles
 
Ad

More from Remy Sharp (14)

Forget the Web
Forget the WebForget the Web
Forget the Web
Remy Sharp
 
Interaction Implementation
Interaction ImplementationInteraction Implementation
Interaction Implementation
Remy Sharp
 
jQuery: out with the old, in with the new
jQuery: out with the old, in with the newjQuery: out with the old, in with the new
jQuery: out with the old, in with the new
Remy Sharp
 
HTML5: huh, what is it good for?
HTML5: huh, what is it good for?HTML5: huh, what is it good for?
HTML5: huh, what is it good for?
Remy Sharp
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
Webapps without the web
Webapps without the webWebapps without the web
Webapps without the web
Remy Sharp
 
TwitterLib.js
TwitterLib.jsTwitterLib.js
TwitterLib.js
Remy Sharp
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
Remy Sharp
 
codebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIscodebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIs
Remy Sharp
 
HTML5 JavaScript APIs
HTML5 JavaScript APIsHTML5 JavaScript APIs
HTML5 JavaScript APIs
Remy Sharp
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
HTML5 & Friends
HTML5 & FriendsHTML5 & Friends
HTML5 & Friends
Remy Sharp
 
HTML5 JS APIs
HTML5 JS APIsHTML5 JS APIs
HTML5 JS APIs
Remy Sharp
 
jQuery Loves Developers - SWDC2009
jQuery Loves Developers - SWDC2009jQuery Loves Developers - SWDC2009
jQuery Loves Developers - SWDC2009
Remy Sharp
 
Forget the Web
Forget the WebForget the Web
Forget the Web
Remy Sharp
 
Interaction Implementation
Interaction ImplementationInteraction Implementation
Interaction Implementation
Remy Sharp
 
jQuery: out with the old, in with the new
jQuery: out with the old, in with the newjQuery: out with the old, in with the new
jQuery: out with the old, in with the new
Remy Sharp
 
HTML5: huh, what is it good for?
HTML5: huh, what is it good for?HTML5: huh, what is it good for?
HTML5: huh, what is it good for?
Remy Sharp
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
Webapps without the web
Webapps without the webWebapps without the web
Webapps without the web
Remy Sharp
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
Remy Sharp
 
codebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIscodebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIs
Remy Sharp
 
HTML5 JavaScript APIs
HTML5 JavaScript APIsHTML5 JavaScript APIs
HTML5 JavaScript APIs
Remy Sharp
 
iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
Remy Sharp
 
HTML5 & Friends
HTML5 & FriendsHTML5 & Friends
HTML5 & Friends
Remy Sharp
 
jQuery Loves Developers - SWDC2009
jQuery Loves Developers - SWDC2009jQuery Loves Developers - SWDC2009
jQuery Loves Developers - SWDC2009
Remy Sharp
 

Recently uploaded (20)

Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...Transcript: Canadian book publishing: Insights from the latest salary survey ...
Transcript: Canadian book publishing: Insights from the latest salary survey ...
BookNet Canada
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
The Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI IntegrationThe Future of Cisco Cloud Security: Innovations and AI Integration
The Future of Cisco Cloud Security: Innovations and AI Integration
Re-solution Data Ltd
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Viam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdfViam product demo_ Deploying and scaling AI with hardware.pdf
Viam product demo_ Deploying and scaling AI with hardware.pdf
camilalamoratta
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...
Safe Software
 

Yearning jQuery