Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.
Some "rules"
jQuery is a library of JavaScript functions.
It contains many functions to help simplify your programming, including:
<head>
<script src="jquery.js"></script>
</head>
<head>
<script src="https://code.jquery.com/jquery-latest.min.js">
</script>
</head>
Remember document.getElementById() and document.getElementsByTagName()?
jQuery selectors let you get elements by:
var $divs = $("div"); // All divs on page
var $img = $("#mainpicture"); //img with id mainpicture
var $images = $(".picture"); //All images with class picture
jQuery has hundreds of actions that can be performed on any element
All the actions are methods
As methods they are called with dot notation
$(selector).action();
<img id="mainpicture" src="images/boring-image.png">
var $img = $('#mainpicture');
// Attribute Get/Set
$img.attr('src');
$img.attr('src', 'images/pink-logo.png');
// CSS Get/Set
$img.css('width');
$img.css('width', '200px');
<div id="results-slide-9">Boo!</div>
Get and set html value
var $results = $('#results-slide-9');
$results.html();
$results.html('New html!');
Try it!
<div id="results-slide-10">Boo!</div>
var $results = $('#results-slide-10');
// Append html
$results.append('Additional html');
// Prepend html
$results.prepend('Additional html (on top)');
Try it!
var $newDiv = $('<div></div>');
Try to convert last week's DOM interaction into jQuery.
Don't forget to include jQuery in your HTML head!
Webpages take time to load
Almost always, you don't want the JavaScript to be called until the page is loaded
$(document).ready(function(){
// your code here
});
When you wrap your code with $(document).ready(function(){});
, you can follow best practices and load your JavaScript at the end of your HTML document, right before the closing </body> tag.
This lets your content load quickly, and ensures the DOM is fully loaded before you start modifying it.
Events occur on a webpage via user interaction
Common Events:
$(selector).on('mouseenter', function(){
//code when the mouse enters
})
$('.box').on('mouseenter', function(){
$(this).css('background-color', 'purple')
})
$('.box').on('mouseenter', function(){
$(this).css('background-color', 'purple')
})
$('.box').on('mouseleave', function(){
$(this).css('background-color', 'orange')
})
$('.box').on('click', function(){
$(this).css('background-color', 'green')
})
If you want multiple events to happen on the same element, you can pass an object to the on
method. We call this an event map.
$('.box').on({
click: function() {
$(this).css('background-color', 'green')
},
mouseenter: function() {
$(this).css('background-color', 'purple')
},
mouseleave: function(){
$(this).css('background-color', 'orange')
}
});
HTML Forms allow users to enter information
<form id="about-me">
<input type="text" id="name" placeholder="Enter a name"/>
<label>Do you like popcorn?</label>
<label for="popcorn-yes">Yes</label>
<input type="radio" name="popcorn" id="popcorn-yes" value="yes"/>
<label for="popcorn-no">No </label>
<input type="radio" name="popcorn" id="popcorn-no" value="no"/>
<label for="dinosaur">Favorite Dinosaur</label>
<select id="dinosaur">
<option value="t-rex">Tyrannosaurus Rex</option>
<option value="tri">Triceratops</option>
<option value="stego">Stegosaurus</option>
<option value="other">Other</option>
</select>
<input type="submit" value="Go!"/>
</form>
HTML Forms allow users to enter information
You can use JavaScript to get values from a form
$('#name').val();
$('select#dinosaur').val();
$('input:radio[name="popcorn"]:checked').val();
$('#name').val('Mitch');
$('select#dinosaur').val('stego');
$('input:radio[name="popcorn"][value="no"]').attr('checked',true);
jQuery has an event for form submission
$('#about-me').on('submit', function(event){
//code to execute after submission
event.preventDefault();
});
You can use "event.preventDefault();" to prevent the form trying to submit to a server.