2. Me, myself and I
application developer
PHP since 2001
JavaScript since 2002
papaya CMS since
01.2008
Bastian Feder | papaya Software GmbH 2
3. What's this all about?
What is this jQuery?
All about the basics
Animation and user interaction
Event-handling – capability
Handling asynchronous requests
Plug-ins – an overview
Examples
Conclusion
Bastian Feder | papaya Software GmbH 3
4. What's this jQuery?
„jQuery is a fast, concise, JavaScript Library that
simplifies how you traverse HTML documents,
handle events, perform animations, and add Ajax
interactions to your web pages.“
(www.jquery.com)
Bastian Feder | papaya Software GmbH 4
5. jQuery – some features
Crossbrowser compatible
(IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+)
CSS3 ready
outstanding features:
▹ ability to queue effects
▹ user defined animations
▹ unobtrusiveness in coexistence with other JS
libraries or frameworks (e.g. prototype)
Bastian Feder | papaya Software GmbH 5
6. All about the basics
interoperability
extending the DOM object
DOM Manipulation
selectors
iterations
Bastian Feder | papaya Software GmbH 6
7. Interoperability
overriding $() <html>
<head>
<script src=quot;prototype.jsquot;></script>
including jQuery <script src=quot;jquery.jsquot;></script>
<script>
before other libraries
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
referencing magic- $j(quot;divquot;).hide();
});
shortcuts // Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>
Bastian Feder | papaya Software GmbH 7
8. Extending the DOM
$(selector, scope)
▹ simplifies the selection of DOM elements
▹ extends the DOM node with jQuery methods
$(document).ready(callback);
▹ ensures the javascript will be executed after
document has been loaded completely
Bastian Feder | papaya Software GmbH 8
18. Request handling -
example
Live demo
Bastian Feder | papaya Software GmbH 18
19. Plug-ins – an overview
mechanism for adding in methods and functionality
things to remember when writing plugins:
▹ names convention (jquery.[nameOfPlugin].js)
▹ methods are attached to jQuery.fn object
▹ function are attached to jQuery object
▹ inside methods 'this' is a reference to current jQuery object
▹ your method must return the jQuery object, unless explicity noted
otherwise.
▹ use jQuery instead of $ inside your plugin code - that allows users to
change the alias for jQuery in a single place.
Bastian Feder | papaya Software GmbH 19
20. Plug-ins – an example
/**
* calculates the number to a human readable format
*
* calculation taken from papaya-cms {@link http://www.papaya-cms.com}
*/
jQuery.fn.toHumanReadable = function() {
var size = this.text();
var unit;
if (size > 10000000000) {
size = (Math.round(size / 1073741824 * 100) / 100);
unit = 'GB';
} else if (size > 10000000) {
size = (Math.round(size / 1048576 * 100) / 100)
unit = 'MB';
} else if (size > 10000) {
size = (Math.round(size / 1024 * 100) / 100)
unit = 'kB';
} else {
size = Math.round(size)
unit = 'B';
}
size = size.toString();
var p = size.lastIndexOf('.');
if (p > 0) {
var i = 2 - size.length + p + 1;
while (i > 0) {
size = size + '0';
i--;
}
} else {
size = size + '.00';
}
return this.text(size + ' ' + unit);
}
Bastian Feder | papaya Software GmbH 20
21. Conclusion
jQuery is ..
▹ an extensive javascript library with an huge
amount of functionallity
▹ very easy to learn and use
▹ pretty good documented
▹ easy to extend by writing plug-ins
Bastian Feder | papaya Software GmbH 21
22. References
jQuery website (http://www.jquery.com)
A List Apart: DOM Design Tricks I/II
(http://www.alistapart.com/articles/domtricks2)
Selfhtml (http://de.selfhtml.org; sorry german only)
slides soonish on slideshare
(http://www.slideshare.com/lapistano)
Bastian Feder | papaya Software GmbH 22
23. License
This set of slides and the source code included in
the download package is licensed under the
Creative Commons Attribution-Noncommercial-
Share Alike 2.0 Generic License
http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en
Bastian Feder | papaya Software GmbH 23