65 lines
1.8 KiB
JavaScript
Raw Normal View History

2016-11-11 05:44:34 -08:00
(function() {
'use strict';
const stopButton = document.querySelector('#stopButton');
const slowButton = document.querySelector('#slowButton');
const goButton = document.querySelector('#goButton');
const stopLight = document.querySelector('#stopLight');
const slowLight = document.querySelector('#slowLight');
const goLight = document.querySelector('#goLight');
2016-11-11 06:15:22 -08:00
// part 1
2016-11-11 05:44:34 -08:00
stopButton.addEventListener('click', () => {
2016-11-11 07:39:19 -08:00
stopLight.classList.toggle('stop');
2016-11-11 05:44:34 -08:00
});
2016-11-11 06:15:22 -08:00
slowButton.addEventListener('click', () => {
2016-11-11 07:39:19 -08:00
slowLight.classList.toggle('slow');
2016-11-11 06:15:22 -08:00
});
goButton.addEventListener('click', () => {
2016-11-11 07:39:19 -08:00
goLight.classList.toggle('go');
2016-11-11 06:15:22 -08:00
});
// part 2
2016-11-11 06:54:27 -08:00
const handleMouseEnter = (event) => {
2016-11-11 05:44:34 -08:00
console.log(`Entered ${event.target.textContent} button`);
2016-11-11 06:52:25 -08:00
};
2016-11-11 05:44:34 -08:00
2016-11-11 06:54:27 -08:00
const handleMouseLeave = (event) => {
2016-11-11 05:44:34 -08:00
console.log(`Left ${event.target.textContent} button`);
2016-11-11 06:52:25 -08:00
};
2016-11-11 05:44:34 -08:00
2016-11-11 06:52:25 -08:00
stopButton.addEventListener('mouseenter', handleMouseEnter);
slowButton.addEventListener('mouseenter', handleMouseEnter);
goButton.addEventListener('mouseenter', handleMouseEnter);
2016-11-11 05:44:34 -08:00
2016-11-11 06:52:25 -08:00
stopButton.addEventListener('mouseleave', handleMouseLeave);
slowButton.addEventListener('mouseleave', handleMouseLeave);
goButton.addEventListener('mouseleave', handleMouseLeave);
2016-11-11 05:44:34 -08:00
2016-11-11 06:15:22 -08:00
// bonus
2016-11-11 06:53:23 -08:00
const controls = document.querySelector('#controls');
2016-11-11 05:44:34 -08:00
controls.addEventListener('click', (event) => {
if (event.target === controls) {
return;
}
let status;
if (event.target === stopButton) {
2016-11-11 07:39:19 -08:00
status = stopLight.classList.contains('stop') ? 'on' : 'off';
2016-11-11 05:44:34 -08:00
}
else if (event.target === slowButton) {
2016-11-11 07:39:19 -08:00
status = slowLight.classList.contains('slow') ? 'on' : 'off';
2016-11-11 05:44:34 -08:00
}
else {
2016-11-11 07:39:19 -08:00
status = goLight.classList.contains('go') ? 'on' : 'off';
2016-11-11 05:44:34 -08:00
}
console.log(`${event.target.textContent} bulb ${status}`);
});
})();