Reputation: 19
trying to get my burger icon to show the mobile menu from hidden to block with "display", code works on desktop with chrome simulator but not on the actual mobile device. my website is www.rikuzit.co.il
window.onclick = function(event){
var burger = document.getElementById("burgerIcon");
var mobileMenu = document.getElementById("mobileMenu");
if(event.target == burger){
alert("burger was pressed");
console.log(event.target);
mobileMenu.style.display = "block";
} else {
alert("clicked outside burger");
console.log(event.target);
mobileMenu.style.display = "none";
}
}
i expect that when the button is tapped the menu should appear.
Upvotes: 0
Views: 125
Reputation: 29
(copied Shubham Chaudhary's answer) i hope this should work
window.onclick = eventHandler
window.ontouch = eventHandler
function eventHandler(event){
...
}
Upvotes: 0
Reputation: 44107
As shown in this answer, it's better to use touchstart
for mobile devices:
window.ontouchstart = function(event){
var burger = document.getElementById("burgerIcon");
var mobileMenu = document.getElementById("mobileMenu");
if(event.target == burger){
alert("burger was pressed");
console.log(event.target);
mobileMenu.style.display = "block";
} else {
alert("clicked outside burger");
console.log(event.target);
mobileMenu.style.display = "none";
}
}
Upvotes: 1
Reputation: 499
You can do something like this
window.onclick = eventHandler
window.ontouch = eventHandler
function eventHandler(event){
...
}
Upvotes: 0