J query introduction

Preview:

Citation preview

jQuery BasicjQuery BasicThe Way to JavaScript and The Way to JavaScript and Rich Internet ApplicationsRich Internet Applications

Introduction to jQueryIntroduction to jQuery• Developed by John Resig at Rochester Institute of Developed by John Resig at Rochester Institute of

TechnologyTechnology• ““jQueryjQuery is a lightweight is a lightweight JavaScript library that emphasizes that emphasizes

interaction between interaction between JavaScript and and HTML. It was released in . It was released in January 2006 at January 2006 at BarCamp NYC by NYC by John Resig.”.”

• ““jQuery is jQuery is free, open source• Current version is 2.1.4Current version is 2.1.4

Introduction to jQueryIntroduction to jQuery• Why do I want itWhy do I want it

– Rich Internet Applications (RIA)Rich Internet Applications (RIA)– Dynamic HTML (DHTML)Dynamic HTML (DHTML)

• How do I get itHow do I get it– www.jquery.com

• How can I learn itHow can I learn it– jQuery in ActionjQuery in Action by Bibeault & Katz, Manning by Bibeault & Katz, Manning– jQuery Visual Quickstart GuidejQuery Visual Quickstart Guide by Holzner, Peachpit by Holzner, Peachpit– www.jquery.com– docs.jquery.comdocs.jquery.com– www.visualjquery.com– www.Jqueryfordesigners.comwww.Jqueryfordesigners.com– www.gscottolson.com/weblog/ - cheat sheetwww.gscottolson.com/weblog/ - cheat sheet– www.javascripttoolbox.com/jquerywww.javascripttoolbox.com/jquery

Plan for the 4 sessionsPlan for the 4 sessions• Class I – Introduction, installation, Class I – Introduction, installation,

Ready function, DOM, Selecting and Ready function, DOM, Selecting and Formatting web page elementsFormatting web page elements

• Class II – Events and AnimationsClass II – Events and Animations• Class III – jQuery Plugin librariesClass III – jQuery Plugin libraries• Class IV – AJAX with PHPClass IV – AJAX with PHP

Introduction to jQueryIntroduction to jQuery• Installation – You just download the Installation – You just download the

jquery-1.3.2.js file and put it in your jquery-1.3.2.js file and put it in your website folderwebsite folder– Can access via URLCan access via URL

What jQuery DoesWhat jQuery Does• ““Unobtrusive” JavaScript – separation of Unobtrusive” JavaScript – separation of

behaviorbehavior from structure from structure• CSS – separation of CSS – separation of stylestyle from structure from structure• Allows adding JavaScript to your web pagesAllows adding JavaScript to your web pages• Advantages over Advantages over justjust JavaScript JavaScript

– Much easier to useMuch easier to use– Eliminates cross-browser problemsEliminates cross-browser problems

• HTML to CSS to DHTMLHTML to CSS to DHTML

5 Things jQuery Provides5 Things jQuery Provides• Select DOM (Document Object Model) Select DOM (Document Object Model)

elements on a page – one element or a group elements on a page – one element or a group of themof them

• Set properties of DOM elements, in groups Set properties of DOM elements, in groups (“Find something, do something with it”)(“Find something, do something with it”)

• Creates, deletes, shows, hides DOM elementsCreates, deletes, shows, hides DOM elements• Defines event behavior on a page (click, Defines event behavior on a page (click,

mouse movement, dynamic styles, mouse movement, dynamic styles, animations, dynamic content)animations, dynamic content)

• AJAX callsAJAX calls

The DOMThe DOM• Document Object ModelDocument Object Model• jQuery is “DOM scripting”jQuery is “DOM scripting”• Heirarchal structure of a web pageHeirarchal structure of a web page• You can add and subtract DOM You can add and subtract DOM

elementselements• You can change the properties and You can change the properties and

contents of DOM elementscontents of DOM elements

The DOMThe DOM• ““The The Document Object ModelDocument Object Model ( (DOMDOM) is a cross-platform and ) is a cross-platform and

language-independent convention for representing and interacting language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the with objects in HTML, XHTML and XML documents. Aspects of the DOM (such as its "Elements") may be addressed and manipulated DOM (such as its "Elements") may be addressed and manipulated within the syntax of the programming language in use.” Wikipediawithin the syntax of the programming language in use.” Wikipedia

The jQuery FunctionThe jQuery Function• jQuery() = $()jQuery() = $()• $(function)$(function) The “Ready” handlerThe “Ready” handler• $(‘selector’)$(‘selector’) Element selector Element selector

expressionexpression• $(element)$(element) Specify element(s) directlySpecify element(s) directly• $(‘HTML’)$(‘HTML’) HTML creationHTML creation• $.function()$.function() Execute a jQuery functionExecute a jQuery function• $.fn.myfunc(){}$.fn.myfunc(){} Create jQuery functionCreate jQuery function

Tutorial 1 – The Ready Tutorial 1 – The Ready FunctionFunction• Set up a basic HTML page and add jQuerySet up a basic HTML page and add jQuery• Create a “ready” functionCreate a “ready” function• Call a functionCall a function• 5 ways to specify the ready function5 ways to specify the ready function

– jquery(document).ready(function(){…};);jquery(document).ready(function(){…};);– jquery().ready(function(){…};)jquery().ready(function(){…};)– jquery(function(){…};)jquery(function(){…};)– jquery(dofunc);jquery(dofunc);– $(dofunc);$(dofunc);

Tutorial 2 – Selecting ElementsTutorial 2 – Selecting ElementsCreating a “wrapped set”Creating a “wrapped set”• $(selector)$(selector)• selector:selector:

– $(‘#id’)$(‘#id’) id of elementid of element– $(‘p’)$(‘p’) tag nametag name– $(‘.class’)$(‘.class’) CSS classCSS class– $(‘p.class’)$(‘p.class’) <p> elements having the CSS class<p> elements having the CSS class– $(‘p:first’)$(‘p:first’) $(‘p:last’)$(‘p:last’) $(‘p:odd’)$(‘p:odd’) $(‘p:even’)$(‘p:even’)– $(‘p:eq(2)’)$(‘p:eq(2)’) gets the 2gets the 2ndnd <p> element (1 based) <p> element (1 based)– $(‘p’)[1]$(‘p’)[1] gets the 2gets the 2ndnd <p> element (0 based) <p> element (0 based)– $(‘p:nth-child(3))$(‘p:nth-child(3)) gets the 3gets the 3rdrd <p> element of the parent. n=even, odd <p> element of the parent. n=even, odd

too.too.– $(‘p:nth-child(5n+1)’)$(‘p:nth-child(5n+1)’) gets the 1gets the 1stst element after every 5th one element after every 5th one– $(‘p a’)$(‘p a’) Selects all <a> elements inside <p> elements Selects all <a> elements inside <p> elements– $(‘p>a’)$(‘p>a’) <a> elements, direct child of a <p><a> elements, direct child of a <p>– $(‘p+a’)$(‘p+a’) <a> elements, directly following a <p><a> elements, directly following a <p>– $(‘p, a’)$(‘p, a’) <p> and <a> elements<p> and <a> elements– $(‘li:has(ul)’)$(‘li:has(ul)’) <li> elements that have at least one <ul> descendent<li> elements that have at least one <ul> descendent– $(‘:not(p)’)$(‘:not(p)’) all elements but <p> elementsall elements but <p> elements– $(‘p:hidden’)$(‘p:hidden’) only <p> elements that are hiddenonly <p> elements that are hidden– $(‘p:empty’)$(‘p:empty’) <p> elements that have no child elements<p> elements that have no child elements

Selecting Elements, cont.Selecting Elements, cont.• $(‘img’[alt])$(‘img’[alt]) <img> elements having an alt <img> elements having an alt

attributeattribute• $(‘a’[href^=http://])$(‘a’[href^=http://]) <a> elements with an href <a> elements with an href

attribute starting with ‘http://’attribute starting with ‘http://’• $(‘a’[href$=.pdf])$(‘a’[href$=.pdf]) <a> elements with an href <a> elements with an href

attribute ending with ‘.pdf’attribute ending with ‘.pdf’• $(‘a’[href*=ntpcug])$(‘a’[href*=ntpcug]) <a> elements with an href <a> elements with an href

attriute containing ‘ntpcug’attriute containing ‘ntpcug’

Useful jQuery FunctionsUseful jQuery Functions• .each().each() iterate over the setiterate over the set• .size().size() number of elements in setnumber of elements in set• .end().end() reverts to the previous setreverts to the previous set• .get(n).get(n) get just the nth element (0 based)get just the nth element (0 based)• .eq(n).eq(n) get just the nth element (0 based) also .lt(n) & .gt(n)get just the nth element (0 based) also .lt(n) & .gt(n)• .slice(n,m).slice(n,m) gets only nth to (m-1)th elementsgets only nth to (m-1)th elements• .not(‘p’).not(‘p’) don’t include ‘p’ elements in setdon’t include ‘p’ elements in set• .add(‘p’).add(‘p’) add <p> elements to setadd <p> elements to set• .remove() .remove() removes all the elements from the page DOMremoves all the elements from the page DOM• .empty().empty() removes the contents of all the elementsremoves the contents of all the elements• .filter(fn/sel).filter(fn/sel) selects elements where the func returns true or selects elements where the func returns true or

selsel• .find(selector).find(selector) selects elements meeting the selector criteriaselects elements meeting the selector criteria• .parent().parent() returns the parent of each element in setreturns the parent of each element in set• .children().children() returns all the children of each element in setreturns all the children of each element in set• .next().next() gets next element of each element in setgets next element of each element in set• .prev().prev() gets previous element of each element in setgets previous element of each element in set• .siblings().siblings() gets all the siblings of the current elementgets all the siblings of the current element

Tutorial 3 – Formatting Tutorial 3 – Formatting ElementsElements• .css(property, value).css(property, value)• .html().html()• .val().val() (form elements)(form elements)• .text().text()• .addClass(‘class’).addClass(‘class’)• .removeClass(‘class’).removeClass(‘class’)

Tutorial 4 – Add Page Tutorial 4 – Add Page ElementsElements

• $(‘#target’).before(‘<p>Inserted before $(‘#target’).before(‘<p>Inserted before #target</p>’);#target</p>’);

• $(‘#target’).after(‘<p>This is added after $(‘#target’).after(‘<p>This is added after #target</p>’);#target</p>’);

• $(‘#target’).append(‘<p>Goes inside #target, at $(‘#target’).append(‘<p>Goes inside #target, at end</p>’);end</p>’);

• $(‘#target’).wrap(‘<div></div>’);$(‘#target’).wrap(‘<div></div>’);

Adding EventsAdding Events• Mouseover events – bind, hover, Mouseover events – bind, hover,

toggletoggle• Button click eventsButton click events

Basic Syntax of Event Basic Syntax of Event BindingBinding• $(‘img’).bind(‘click’,function(event)$(‘img’).bind(‘click’,function(event)

{alert(‘Howdy’;});{alert(‘Howdy’;});• $(‘img’).bind(‘click’,imgclick(event));$(‘img’).bind(‘click’,imgclick(event));

– Allows unbinding the functionAllows unbinding the function• $(‘img’).unbind(‘click’,imgclick());$(‘img’).unbind(‘click’,imgclick());• $(‘img’).unbind(‘click’);$(‘img’).unbind(‘click’);• $(‘img’).one(‘click’,imgclick(event));$(‘img’).one(‘click’,imgclick(event));

– Only works onceOnly works once• $(‘img’).click(imgclick);$(‘img’).click(imgclick);• $(‘img’).toggle(click1, click2);$(‘img’).toggle(click1, click2);• $(‘img’).hover(mouseover, mouseout);$(‘img’).hover(mouseover, mouseout);

Shortcut Event BindingShortcut Event Binding• .click(func).click(func)• .submit(func).submit(func)• .dblclick(func).dblclick(func)• .mouseover(func).mouseover(func)• .mouseout(func).mouseout(func)• .select(func).select(func)

Useful Event FunctionsUseful Event Functions• .hide().hide() display:truedisplay:true• .show().show() display:nonedisplay:none• .toggle(func1, func2) first click calls func1, .toggle(func1, func2) first click calls func1,

next click executes func2next click executes func2• .hover(over, out).hover(over, out) mouseover, mouseoutmouseover, mouseout

Jquery noConflictJquery noConflict<script type="text/javascript"><script type="text/javascript">var $j = jQuery.noConflict();var $j = jQuery.noConflict();</script></script>Replace all $ or jQuery by $j.Replace all $ or jQuery by $j.Before : $(‘p’).text();Before : $(‘p’).text();After: $j(‘p’).text();After: $j(‘p’).text();

AJAXAJAX• What is AJAXWhat is AJAX• The basic AJAX function – The basic AJAX function –

XMLHttpRequestXMLHttpRequest• Initiating a requestInitiating a request• Getting the responseGetting the response

jQuery - AJAX jQuery - AJAX IntroductionIntroduction

• AJAX is the art of exchanging data AJAX is the art of exchanging data with a server, and updating parts of a with a server, and updating parts of a web page - without reloading the web page - without reloading the whole page.whole page.

• Stand for “Asynchronous JavaScript Stand for “Asynchronous JavaScript and XML”and XML”

Ajax Sending GET/POST Ajax Sending GET/POST requestsrequests  $(“div”).load(“content.htm”);$(“div”).load(“content.htm”);

// passing parameters// passing parameters$(“#content”).load(“getcontent.php”,$(“#content”).load(“getcontent.php”,{{

““id”:”33”, id”:”33”, “type”:”main”“type”:”main”

});});

AJAX basic functionAJAX basic function  $.ajax({$.ajax({                                        url : "result.php",url : "result.php",                                        type : "post",type : "post",                                      dateType:"text",dateType:"text",                                        data : {data : {                                                  prefecture_id: $('# prefecture_id ').val()prefecture_id: $('# prefecture_id ').val()                                        },},                                        success : function (result){success : function (result){                                                $('#result').html(result);$('#result').html(result);                                        }}                              });});