2. Stuff I’ll cover today.
• JavaScript.
• The DOM (Document Object Model).
• Adding Behaviors to HTML.
• You don’t need to learn the DOM
• jQuery
• jQuery UI Tabs
• jQuery the Drupal Way
4. What is JavaScript?
• Client Side Scripting Language
• JavaScript is not Java
• Used to provide instant feedback
• Better Usability
• Richer Web Applications
• Works the DOM (i.e. HTML, XML, etc...)
5. What is the DOM?
The Document Object Model (DOM) is an
API for HTML and XML documents. It
provides a structural representation of
the document, enabling you to modify its
content and visual presentation. Essentially,
it connects web pages to scripts or
programming languages.
https://developer.mozilla.org/en/DOM
6. HTML and the DOM.
html
head
body
meta title
div
ul div div div
li li li p p p
a a a
7. The real DOM
Document .getElementById(‘tabs’)
html
Element
head
id=”tabs”
Element
body
Element Element
meta title
Element .innerHTML
div
Element Element Element Element
ul div div div
Element Element Element Element Element Element
li li li p p p
Element Element Element
a a a
10. The DOM is NOT JavaScript
Blue is for JavaScript, Red is for DOM
var anchorTags =
document.getElementsByTagName(“a”)
for (var i = 0;i <anchorTags.length; i++)
{
alert(“Href of this a element is: “ +
anchorTags[i].href);
}
https://developer.mozilla.org/en/The_DOM_and_JavaScript
29. Objective.
• Turn an HTML Document with an
Unordered List into tabbed content.
• Format the HTML using CSS.
• Add Behavior so that you can change
tabs onClick of the tab name.
34. Four JavaScript Functions
• init() .
sets up the tabs
• showTab() displays a clicked tab's content and highlights the tab.
• getFirstChildWithTagName() is a helper
function that retrieves the first child of a given element that has a given tag
name.
• getHash() is another short helper function that takes a URL and
returns the part of the URL that appears after the hash (#) symbol.
36. You need to know a lot.
• CSS
• Document Object Model (DOM)
• JavaScript
• Language Constructs
• Verify that the JavaScript works in other
browsers.
44. The DOM has to be ready
$(document).ready(function() {
// Code Goes Here
});
45. The DOM has to be ready
$(document).ready(function() {
$(“#tabs”).tabs();
});
46. The Drupal Way
Drupal.behaviors.loadTabs = function(context) {
// Code Goes Here
};
47. The Drupal Way
Drupal.behaviors.loadTabs = function(context) {
$(“#tabs”).tabs();
};
48. Why use Drupal.behaviors?
• Ability to override JS
• Behaviors are re-attachable
• Attach Behaviors to a specific context
• HTML loaded via AHAH
Drupal.attachBehaviors(elem);