javascript the smart way - getting started with jquery

17
JavaScript the Smart Way Getting Started with jQuery Drupal User Group presentation

Upload: katbailey

Post on 10-May-2015

9.513 views

Category:

Business


0 download

DESCRIPTION

An introduction to jQuery aimed at Drupal themers and developers. Briefly covers using ajax in Drupal.

TRANSCRIPT

Page 1: JavaScript the Smart Way - Getting Started with jQuery

JavaScript the Smart WayGetting Started with jQuery

Drupal User Group presentation

Page 2: JavaScript the Smart Way - Getting Started with jQuery

Introduction to jQuery

• JavaScript / jQuery / AJAX - what’s the difference?– JavaScript is a scripting language that adds

interactivity to web pages– jQuery is a JavaScript Framework– AJAX is a particular type of functionality

• JavaScript is to jQuery as PHP is to Drupal

Page 3: JavaScript the Smart Way - Getting Started with jQuery

Introduction to jQuery• What can jQuery do for me?

TABS

AJAX

“FLASH”Y STUFF

Page 4: JavaScript the Smart Way - Getting Started with jQuery

Introduction to jQuery• Advantages of jQuery over plain JavaScript

– Simplifies cross-browser issues– You don’t have to write the same code over and

over again

• Advantages of jQuery over other JS frameworks– Very concise code– Small file size– completely open source– Plugin architecture

Page 5: JavaScript the Smart Way - Getting Started with jQuery

jQuery Basics• What do I need to get started?

– An understanding of CSS and the DOM– Basic understanding of JS syntax (ideally!)– jQuery itself

http://docs.jquery.com/Downloading_jQuery• $(document).ready(function(){

//let’s get started!});

Page 6: JavaScript the Smart Way - Getting Started with jQuery

Selectors• CSS$(‘a’), $(‘#container’), $(‘div.ajaxContainer’),$(‘li:first-child’)

• X-Path:$(‘a[title]’), $(‘div[ul]’),$(‘a[href^=“mailto:”]’)

• Custom:$(‘li:eq(1)’),$(‘tr:not([th]):odd’)

Page 7: JavaScript the Smart Way - Getting Started with jQuery

Some Useful Methods

• DOM Traversal– .parent(), .siblings(), .next()

• Manipulation– .html(), .empty(), .append(content)

• Events– .ready(fn), .hover(fn1, fn2), .click(fn)

• Effects– .slideToggle(), .show(), .hide()

Page 8: JavaScript the Smart Way - Getting Started with jQuery

Chaining

• $(‘#someElement’).parent().parent().find(‘div.green’).hide().end().siblings().find(‘div.blue’).show().end().parent().next().addClass(‘redBorder’);

Page 9: JavaScript the Smart Way - Getting Started with jQuery

Show/Hide Example

$(document).ready(function() { $('a.showhide').click(function() {

$(this).parent().parent() .find('div.view-data-body') .slideToggle();

return false; });}); see example

Page 10: JavaScript the Smart Way - Getting Started with jQuery

jQuery in Drupal• drupal_add_js($data, $type)

– Add a JavaScript file, setting or inline code to the page, for example:

• drupal_add_js(drupal_get_path(‘module’, ‘mymodule’) .'/myjs.js');

• drupal_add_js(array(‘myjs’=>$mysettings), ‘setting’);• Drupal_add_js(‘var myVar = “foo”;’, ‘inline’);

• Where do I put my code?– themers: put your .js file in your theme directory and call

drupal_add_js(drupal_get_path(‘theme’, ‘mytheme’) . ‘myjs.js’) from a tpl file

– module developers: put your .js file in your module directory and call drupal_add_js() before you output content

Page 11: JavaScript the Smart Way - Getting Started with jQuery

Ajaxifying Drupal with jQuery

• Basic essentials:– jQuery’s .ajax() or .get() method– drupal/path– callback function

• drupal_to_js($var)– Converts a PHP variable into its JavaScript

equivalent.• Drupal.parseJSON(data)

Page 12: JavaScript the Smart Way - Getting Started with jQuery

12

Ajaxifying Drupal with jQuery

Page 13: JavaScript the Smart Way - Getting Started with jQuery

Ajaxifying Drupal with jQuery

‣$items[] = array('path' => 'ajax/path', 'type' => MENU_CALLBACK, 'access' => TRUE, 'callback' => 'get_ajax_image');‣function get_ajax_image($nid) { //some code to retrieve the image print drupal_to_js(array( ‘title’ => $image_title, ‘path’ => $image_path ));}

Page 14: JavaScript the Smart Way - Getting Started with jQuery

Ajaxifying Drupal with jQuery

‣ $(‘a.ajax-button’).click(function() { $.get(this.href, function(data){ var result = Drupal.parseJSON(data); $('div.title').html(result['title']); $('div.image').html(result['path']); }); return false;});

Page 15: JavaScript the Smart Way - Getting Started with jQuery

Resources

• http://jquery.com• Book: Learning jQuery

» PACKT Publishing

• Cheat sheets:» http://colorcharge.com/jquery

• Other online resources» http://www.learningjquery.com» http://15daysofjquery.com» http://visualjquery.com

Page 16: JavaScript the Smart Way - Getting Started with jQuery

Quick Tabs

Create blocks of tabbed views!

http://drupal.org/project/quicktabs

Page 17: JavaScript the Smart Way - Getting Started with jQuery

Key Takeaways• jQuery is a framework for writing JavaScript• It is extremely concise and therefore easy to

learn• It has a robust and efficient CSS-based

selector mechanism for precise selection of DOM elements

• It is modular, so non-standard features are available as plugins

• AJAX is a piece of cake with jQuery• Drupal ships with jQuery already built in