536 lines
17 KiB
JSON
536 lines
17 KiB
JSON
{
|
|
"name": "JSON APIs and Ajax",
|
|
"order": 0.0065,
|
|
"challenges": [
|
|
{
|
|
"id": "bad87fed1348bd9aeca08826",
|
|
"title": "Trigger on click Events with jQuery",
|
|
"difficulty": 3.19,
|
|
"description": [
|
|
"With jQuery we are able to get data from APIs via Ajax",
|
|
"This data normally comes in the form of JSON",
|
|
"Let's get the <code>Get Message</code> button to set the text of a div",
|
|
"We will later use this to display the result of out API request",
|
|
"<code>$(\"#getMessage\").on(\"click\", function(){</code>",
|
|
"<code>  $(\".message\").html(\"Here is the message\");</code>",
|
|
"<code>});</code>"
|
|
],
|
|
"tests": [
|
|
"assert(editor.match(/\\$\\(\\s?\\\"\\#getMessage\\\"\\s?\\)\\.on\\s?\\(\\s?\\\"click\\\"\\,\\s?function\\s?\\(\\)\\s?\\{/gi), 'You should have bound the click event to the getMessage button')",
|
|
"assert(editor.match(/\\$\\(\\s?\\\"\\.message\\\"\\s?\\)\\.html\\(\\s?\\\"Here\\sis\\sthe\\smessage\\\"\\s?\\);/gi), 'You should set te value of the #message box to be the message given in the description')",
|
|
"assert(editor.match(/\\}\\);/gi) && editor.match(/\\}\\);/gi).length >= 2, 'Make sure that you close off all of your functions')"
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" ",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class = \"row text-center\">",
|
|
" <h2>Cat Photo Finder</h2>",
|
|
" </div>",
|
|
" <br/>",
|
|
" <div class = \"row text-center\">",
|
|
" <div class = \"col-xs-12 well Message\">",
|
|
" The message will go here",
|
|
" </div>",
|
|
" </div>",
|
|
" <br/>",
|
|
" <div class = \"row text-center\">",
|
|
" <div class = \"col-xs-12\">",
|
|
" <button id = \"getMessage\" class = \"btn btn-primary\">",
|
|
" Get Message",
|
|
" </button>",
|
|
" </div>",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
{
|
|
"id": "bad87fee1348bd9aebc08726",
|
|
"title": "Learn JSON Syntax",
|
|
"description": [
|
|
"JSON stands for \"JavaScript Object Notation\". It\"s how you create objects in JavaScript.",
|
|
"JSON is a series of \"key-value pairs\". Everything on the left of the colon (<code>:</code>) is the \"key\" you use to unlock the \"value\" on the right of the colon."
|
|
],
|
|
"tests": [
|
|
"assert(typeof data != \"undefined\", \"Whoops! It looks like you deleted the <code>data</code> variable!\");",
|
|
"assert(typeof getAnId != \"undefined\", \"Whoops! It looks like you deleted the <code>getAnId</code> function!\");",
|
|
"assert(data[0]['id'] === getAnId(), \"The duntion getFirstId should return the id of the first element in the array\");"
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
"var data = [",
|
|
" {",
|
|
" \"id\": 0,",
|
|
" \"imageLink\": \"http://rs611.pbsrc.com/albums/tt194/allypopper423/Funny-Cat-Green-Avacado.jpg~c200\",",
|
|
" \"codeNames\": [",
|
|
" \"Juggernaut\",",
|
|
" \"Mrs. Wallace\",",
|
|
" \"Buttercup\"",
|
|
" ]",
|
|
" },",
|
|
" {",
|
|
" \"id\": 1,",
|
|
" \"imageLink\": \"http://cdn.grumpycats.com/wp-content/uploads/2012/09/GC-Gravatar-copy.png\",",
|
|
" \"codeNames\": [",
|
|
" \"Oscar\",",
|
|
" \"Scrooge\",",
|
|
" \"Tyrion\"",
|
|
" ]",
|
|
" },",
|
|
" {",
|
|
" \"id\": 2,",
|
|
" \"imageLink\": \"http://www.kittenspet.com/wp-content/uploads/2012/08/cat_with_funny_face_3-200x200.jpg\",",
|
|
" \"codeNames\": [",
|
|
" \"The Doctor\",",
|
|
" \"Loki\",",
|
|
" \"Joker\"",
|
|
" ]",
|
|
" }",
|
|
"]",
|
|
"function getAnId(){",
|
|
" return();",
|
|
"}",
|
|
"fcces"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
{
|
|
"id": "bad87fee1348bd9aeca08826",
|
|
"title": "Displaying JSON data in HTML",
|
|
"difficulty": 3.19,
|
|
"description": [
|
|
"JSON stands for \"JavaScript Object Notation\". It\"s how you create objects in JavaScript.",
|
|
"JSON is a series of \"key-value pairs\". Everything on the left of the colon (<code>:</code>) is the \"key\" you use to unlock the \"value\" on the right of the colon."
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" $(\"#getMessage\").on(\"click\", function(){",
|
|
" $(\".message\").html(\"Here is the message\");",
|
|
" });",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class = \"row text-center\">",
|
|
" <h2>Cat Photo Finder</h2>",
|
|
" </div>",
|
|
" <br/>",
|
|
" <div class = \"row text-center\">",
|
|
" <div class = \"col-xs-12 well Message\">",
|
|
" The message will go here",
|
|
" </div>",
|
|
" </div>",
|
|
" <br/>",
|
|
" <div class = \"row text-center\">",
|
|
" <div class = \"col-xs-12\">",
|
|
" <button id = \"getMessage\" class = \"btn btn-primary\">",
|
|
" Get Message",
|
|
" </button>",
|
|
" </div>",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad84fee1348bd9aecc48826",
|
|
"title": "Read Data from an Element Using jQuery",
|
|
"dashedName": "waypoint-read-data-from-an-element-using-jquery",
|
|
"difficulty": 3.17,
|
|
"description": [
|
|
"Let's make everything roll with <code>rollOut</code>."
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" $(\"button\").on(\"click\", function() {",
|
|
" $(\"#click-me\").addClass(\"animated shake\");",
|
|
" });",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class=\"row\">",
|
|
" <div class=\"col-xs-2\">",
|
|
" <input type=\"checkbox\" id=\"check-me\">",
|
|
" </div>",
|
|
" <div class=\"col-xs-10\">",
|
|
" <p>#check-me</p>",
|
|
" </div>",
|
|
" <button class=\"btn btn-block btn-primary\">#click-me</button>",
|
|
" <span>Is the checkbox checked?</span>",
|
|
" <span id=\"checked-state\"></span>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad84fee1348bd9aecc38826",
|
|
"title": "Read Data from an Element Using jQuery",
|
|
"dashedName": "waypoint-read-data-from-an-element-using-jquery",
|
|
"difficulty": 3.17,
|
|
"description": [
|
|
"Let's make everything roll with <code>rollOut</code>."
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" $(\"button\").on(\"click\", function() {",
|
|
" $(\"#click-me\").addClass(\"animated shake\");",
|
|
" $(\"#checked-state\").text(\"happy text\");",
|
|
" });",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class=\"row\">",
|
|
" <div class=\"col-xs-2\">",
|
|
" <input type=\"checkbox\" id=\"check-me\">",
|
|
" </div>",
|
|
" <div class=\"col-xs-10\">",
|
|
" <p>#check-me</p>",
|
|
" </div>",
|
|
" <button class=\"btn btn-block btn-primary\">#click-me</button>",
|
|
" <span>Is the checkbox checked?</span>",
|
|
" <span id=\"checked-state\"></span>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad84fee1348bd9aecc28826",
|
|
"title": "Read Data from an Element Using jQuery",
|
|
"dashedName": "waypoint-read-data-from-an-element-using-jquery",
|
|
"difficulty": 3.17,
|
|
"description": [
|
|
"Let's make everything roll with <code>rollOut</code>."
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" $(\"button\").on(\"click\", function() {",
|
|
" $(\"#click-me\").addClass(\"animated shake\");",
|
|
" $(\"#checked-state\").text($(\"#check-me\").prop(\"checked\"));",
|
|
" });",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class=\"row\">",
|
|
" <div class=\"col-xs-2\">",
|
|
" <input type=\"checkbox\" id=\"check-me\">",
|
|
" </div>",
|
|
" <div class=\"col-xs-10\">",
|
|
" <p>#check-me</p>",
|
|
" </div>",
|
|
" <button class=\"btn btn-block btn-primary\">#click-me</button>",
|
|
" <span>Is the checkbox checked?</span>",
|
|
" <span id=\"checked-state\"></span>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad84fee1348bd9aecc18826",
|
|
"title": "Read Data from an Element Using jQuery",
|
|
"dashedName": "waypoint-read-data-from-an-element-using-jquery",
|
|
"difficulty": 3.17,
|
|
"description": [
|
|
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" $(document).ready(function() {",
|
|
" $(\"button\").on(\"click\", function() {",
|
|
" $(\"#click-me\").addClass(\"animated shake\");",
|
|
" $(\"#checked-state\").text($(\"#check-me\").prop(\"checked\"));",
|
|
" });",
|
|
" });",
|
|
"fcces",
|
|
"",
|
|
"<!-- You shouldn't need to modify code below this line -->",
|
|
"",
|
|
"<div class=\"container-fluid\">",
|
|
" <div class=\"row\">",
|
|
" <div class=\"col-xs-2\">",
|
|
" <input type=\"checkbox\" id=\"check-me\">",
|
|
" </div>",
|
|
" <div class=\"col-xs-10\">",
|
|
" <p>#check-me</p>",
|
|
" </div>",
|
|
" <button class=\"btn btn-block btn-primary\">#click-me</button>",
|
|
" <span>Is the checkbox checked?</span>",
|
|
" <span id=\"checked-state\"></span>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad87fee1348bd9aecc08826",
|
|
"title": "Trigger onHover Events with jQuery",
|
|
"dashedName": "waypoint-trigger-onhover-events-with-jquery",
|
|
"difficulty": 3.18,
|
|
"description": [
|
|
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad87fee1348bd9aebc08826",
|
|
"title": "Get Data from an URL Using jQuery",
|
|
"dashedName": "waypoint-get-data-from-a-url-using-jquery",
|
|
"difficulty": 3.21,
|
|
"description": [
|
|
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
"",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
"",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"fcces",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad87fee1348bd9ae9c08826",
|
|
"title": "Loop through JSON Data Using jQuery",
|
|
"dashedName": "waypoint-loop-through-json-data-using-jquery",
|
|
"difficulty": 3.22,
|
|
"description": [
|
|
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
"",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
"",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"fcces",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad88fee1348bd9ae8c08726",
|
|
"title": "Wire AJAX Call into a jQuery Click Event",
|
|
"dashedName": "waypoint-wire-ajax-call-into-a-jquery-click-event",
|
|
"difficulty": 3.24,
|
|
"description": [
|
|
"<img src=\"https://www.evernote.com/l/AjmAQ5BxGrFGRrWl_j2eSpGZMfrunfse89gB/image.png\">"
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" var random = function() { return Math.floor(Math.random() * 3) }",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
"",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"fcces",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad88fee1348bd9ae8c08626",
|
|
"title": "Wire AJAX Call into a jQuery Click Event",
|
|
"dashedName": "waypoint-wire-ajax-call-into-a-jquery-click-event",
|
|
"difficulty": 3.24,
|
|
"description": [
|
|
"<img src=\"https://www.evernote.com/l/AjmAQ5BxGrFGRrWl_j2eSpGZMfrunfse89gB/image.png\">"
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" var random = function() { return Math.floor(Math.random() * 3) }",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
" var kitten = json[random()];",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"fcces",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad88fee1348bd9ae8c08526",
|
|
"title": "Wire AJAX Call into a jQuery Click Event",
|
|
"dashedName": "waypoint-wire-ajax-call-into-a-jquery-click-event",
|
|
"difficulty": 3.24,
|
|
"description": [
|
|
"<img src=\"https://www.evernote.com/l/AjmAQ5BxGrFGRrWl_j2eSpGZMfrunfse89gB/image.png\">"
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" var random = function() { return Math.floor(Math.random() * 3) }",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
" var kitten = json[random()];",
|
|
" $(\"<img src=\"\" + kitten.imageLink + \"\">\").appendTo(\"#output\");",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
},
|
|
|
|
{
|
|
"id": "bad88fee1348bd9ae8c08426",
|
|
"title": "Wire AJAX Call into a jQuery Click Event",
|
|
"dashedName": "waypoint-wire-ajax-call-into-a-jquery-click-event",
|
|
"difficulty": 3.24,
|
|
"description": [
|
|
"<img src=\"https://www.evernote.com/l/AjmAQ5BxGrFGRrWl_j2eSpGZMfrunfse89gB/image.png\">"
|
|
],
|
|
"tests": [
|
|
|
|
],
|
|
"challengeSeed": [
|
|
"fccss",
|
|
" var random = function() { return Math.floor(Math.random() * 3) }",
|
|
" $(document).ready(function() {",
|
|
"",
|
|
" $(\"#cat-button\").on(\"click\", function() {",
|
|
" $.getJSON(\"/json/cats.json\", function( json ) {",
|
|
" var kitten = json[random()];",
|
|
" $(\"<img src=\"\" + kitten.imageLink + \"\">\").appendTo(\"#output\");",
|
|
" $(\"<h3>Code name: \" + kitten.codeNames[random()] + \"</h3>\").appendTo(\"#output\");",
|
|
" });",
|
|
" });",
|
|
"",
|
|
" });",
|
|
"fcces",
|
|
"<div class=\"container-fluid\">",
|
|
" <button id=\"cat-button\" class=\"btn btn-primary btn-block btn-lg\">#cat-button</button>",
|
|
" <div class=\"jumbotron\" id=\"output\">",
|
|
" </div>",
|
|
"</div>"
|
|
],
|
|
"challengeType": 0,
|
|
"type": "waypoint"
|
|
}
|
|
]
|
|
}
|