Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript jQuery Basics (2014) Creating a Simple Lightbox Creating and Appending Detached DOM elements

Juan Ordaz
Juan Ordaz
12,012 Points

I don't Understand how this should work

I am lost, I can figure out where I should fix the code

js/app.js
//Create the Modal
var $modal = $("<div id='modal'></div>");

//Create a placeholder for text in the modal
var $placeHolder = $("<p id='placeHolder'></p>");
$modal.append($placeHolder);

//Create a button to dismiss modal and att it to modal
var $dismissButton = $("<button>Dismiss</button>");

//Hide modal when button is pressed
$dismissButton.click(function(event){
  $modal.append(300);
});

$("body").append($modal);

//A function to show a modal
function displayModal(message) {
  $placeHolder.text(message);
  $modal.show();
}

//Show an example modal
displayModal("Hello World!");
index.html
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" title="no title" charset="utf-8">
    <title>Modal Example</title>
</head>
<body>
    <h1>Modal Example Page</h1>

    <script src="//code.jquery.com/jquery-1.11.0.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/app.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

4 Answers

Craig Campbell
Craig Campbell
14,428 Points

You seem to be missing the button itself in the DOM. Try adding : $('body').append($dismissButton) right after you declare $dismissButton. then you will have a button that adds "300" to the page when clicked.

Juan Ordaz
Juan Ordaz
12,012 Points

Ahh, ok. It's kind of hard to read jQuery code, I been working with Rails back end. So It hard at first understanding other syntax. Thank You so Much!

Sean Pierce Sumler
Sean Pierce Sumler
18,968 Points

Hi Juan. It looks like you need to append the new button to the modal. Like this->

//A function to show a modal

function displayModal(message) {

$placeHolder.text(message);

$modal.show().append($dismissButton);

}

I hope this helps. I just finished this course and it was a real challenge for me. Hang in there! -Sean

Vedran Brnjetić
Vedran Brnjetić
6,004 Points

In my opinion, you should follow the logic of how a $placeholder was appended, see my answer below.

Vedran Brnjetić
Vedran Brnjetić
6,004 Points

Dear Juan,

the task in this challenge is to check the code for a missed step in the code.

The person who wrote the code forgot to append the dismiss button to the $modal

It is done like this:

//Create a button to dismiss modal and att it to modal
var $dismissButton = $("<button>Dismiss</button>");
$modal.append($dismissButton);
Juan Ordaz
Juan Ordaz
12,012 Points

Thank you Vedran for you help!

Hello bro..this is the correct answer for the challenge <blockquotes>

//Create the Modal
var $modal = $("<div id='modal'></div>");

//Create a placeholder for text in the modal
var $placeHolder = $("<p id='placeHolder'></p>");
$modal.append($placeHolder);

//Create a button to dismiss modal and att it to modal
var $dismissButton = $("<button>Dismiss</button>");
$modal.append($dismissButton);                                         //the answer is in this line
//Hide modal when button is pressed
$dismissButton.click(function(){
  $modal.hide(300);
});

$("body").append($modal);

//A function to show a modal
function displayModal(message) {
  $placeHolder.text(message);
  $modal.show();
}

//Show an example modal
displayModal("Hello World!");

</blockquotes> We just appened the dismiss button to the modal. Please select my answer as the best if i manage to help u. thanks

Juan Ordaz
Juan Ordaz
12,012 Points

Thank You my friend!