Improve the solution

solution
Ryan Sobol 8 years ago
parent 71e29f11e0
commit eb209062e2
  1. 10
      README.md
  2. 12
      index.css
  3. 18
      index.js

@ -8,9 +8,9 @@ As always, fork and clone this repository.
Add DOM event listeners and handlers to toggle the on/off state of three bulbs.
- When a user clicks on the "Stop" button, toggle the top bulb's color to `red`.
- When a user clicks on the "Slow" button, toggle the middle bulb's color to `orange`.
- When a user clicks on the "Go" button, toggle the bottom bulb's color to `green`.
- When a user clicks on the "Stop" button, toggle the stop bulb's color.
- When a user clicks on the "Slow" button, toggle the slow bulb's color.
- When a user clicks on the "Go" button, toggle the go bulb's.
**TIP**: All three bulbs can be on/off independently of one another.
@ -19,7 +19,7 @@ Add DOM event listeners and handlers to toggle the on/off state of three bulbs.
- [MDN - `Document.querySelector()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector)
- [MDN - `EventTarget.addEventListener()`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
- [MDN - `click`](https://developer.mozilla.org/en-US/docs/Web/Events/click)
- [MDN - `background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color)
- [MDN - `Element.classList`](https://developer.mozilla.org/en-US/docs/Web/API/Element/classList)
## Part 2
@ -38,7 +38,7 @@ Add new DOM event listeners and handlers to log the mouse state of each button.
## Bonus
Add **one** new DOM event listener and **one** handler to log the state of each bulb.
Add **one** DOM event listener and **one** handler to log the state of each bulb.
- When a user clicks a button that just turned on, log`"<textContent> bulb on"` to the console.
- When a user clicks a button that just turned off, log`"<textContent> bulb off"` to the console.

@ -33,3 +33,15 @@
transition: background 300ms;
width: 150px;
}
.stop {
background-color: red;
}
.slow {
background-color: orange;
}
.go {
background-color: green;
}

@ -11,21 +11,15 @@
// part 1
stopButton.addEventListener('click', () => {
const color = stopLight.style.backgroundColor === 'red' ? '' : 'red';
stopLight.style.backgroundColor = color;
stopLight.classList.toggle('stop');
});
slowButton.addEventListener('click', () => {
const color = slowLight.style.backgroundColor === 'orange' ? '' : 'orange';
slowLight.style.backgroundColor = color;
slowLight.classList.toggle('slow');
});
goButton.addEventListener('click', () => {
const color = goLight.style.backgroundColor === 'green' ? '' : 'green';
goLight.style.backgroundColor = color;
goLight.classList.toggle('go');
});
// part 2
@ -56,13 +50,13 @@
let status;
if (event.target === stopButton) {
status = stopLight.style.backgroundColor === 'red' ? 'on' : 'off';
status = stopLight.classList.contains('stop') ? 'on' : 'off';
}
else if (event.target === slowButton) {
status = slowLight.style.backgroundColor === 'orange' ? 'on' : 'off';
status = slowLight.classList.contains('slow') ? 'on' : 'off';
}
else {
status = goLight.style.backgroundColor === 'green' ? 'on' : 'off';
status = goLight.classList.contains('go') ? 'on' : 'off';
}
console.log(`${event.target.textContent} bulb ${status}`);

Loading…
Cancel
Save