There are several options for using jquery
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
Pass the $ function CSS style selectors to serch for things. What is returned is an jquery style array thingy filled with jQuery objects.
$('#special')
$('.navbutton')
$('img')
$('div.imgholder p:nth-child(2)')
When you have a jQuery object you use.css to set the style of that object. You don't have to relearn css just use the styles as written.
Assume: var $par = $('p');
obj.css("css property", "setting")
$par.css("background-color", "blue");
obj.css({
cssProperty : "setting",
cssProperty2 : "setting2",
...
});
obj.css({
"background-color" : "blue",
"font-family" : "sans-serif",
"font-weight" : "bold"
});
Simple as pie useing .attr() function.
Assume: var $img = $('img');
$img.attr("src", "snowflake.jpg");
$img.attr({
"src" : "snowflake.jpg",
"alt" : "snow is falling",
"title" : "I love snowflakes"
});
All about the $ function. Surround the tag name with < and >.
var img = $("<img>");
var img = $('<img>', {
"src" : "snowflake.jpg",
"alt" : "snow is falling",
"title" : "I love snowflakes"
});
Use the .remove()
method.
$("#bestName").remove();
$('p').fadeOut('slow', function() { $(this).remove(); })
$.ajax("url", {
option : value,
option : value,
option : value,
...
});
$.ajax("http://www.example.com/foo.php", {
data: { username: 'foobar', password: 'abcdef' }, // "password=abcdef"
success: loginSuccess,
error: loginFailure,
complete: dismissDialog // will be called in either case
});
Default request is get. Make it a post by adding type: "post" to options.
$.ajax("url", {
option : value,
...
});
$.ajax("http://www.example.com/foo.php", {
type: "post",
success: loginSuccess,
...
});
jQuery also has
$.get
and
$.post
options if you are too lazy to include this option.
For security reason we are not allowed to perform ajax requests to other domains. This causes a problem: Other domains have all the cool data!
There are 2 ways to work around this
dataType: 'jsonp'
as an ajax option.
JSONP - Basically involves an agreement between developers that we want to be able to share data so lets use a script workaround.
Full explaination on INFO 343 lecture slides link
// get the value from the text box with an id of search
var query = $('#search').val();
$.ajax('https://search.twitter.com/search.json', {
data: { 'q': query},
dataType: 'jsonp',
success: injectTweets,
error: ajaxError
});
/* When given json information as data inject
that information into the page. Assumes there exists
a ul in the page with an id of results. */
function injectTweets(data) {
var res = data.results; // get all the results of the request.
var dl = $('#results');
dl.empty();
// display each result on the page.
$.each(res, function() {
// get the username and tweet from the json data
var dt = $("<dt>").text(this["from_user"] + " says:");
var dd = $("<dd>").text(this["text"]);
dl.append(dt, dd);
});
}