0

I have left-side menu for mobile users. It should open on click on img#mobile-menu

I wrote such code

(function() {
    $("#img#mobile-menu").removeClass("active");
    $("img#mobile-menu").toggleClass("active");
    if ($("img#mobile-menu").hasClass("active")) {
        $("#mobile-menu-sidebar").addClass("active");
    } else {
        $("#mobile-menu-sidebar").removeClass("active");
    }
}());

Problem is that when I open / refresh page both elements #mobile-menu and #mobile-menu-sidebar already has active class, but they shouldn't have it till I click img#mobile-menu

1
  • do it on click event of the menu Commented Jan 17, 2017 at 9:08

2 Answers 2

1

$("#mobile-menu").toggleClass("active");
$('#mobile-menu').click(function() {
  $("#mobile-menu").toggleClass("active");
  if ($("#mobile-menu").hasClass("active")) {
    $("#mobile-menu-sidebar").addClass("active");
    $('span').text("mobile-menu-sideba has active ")
  } else {
    $("#mobile-menu-sidebar").removeClass("active");
    $('span').text("mobile-menu-sideba has remove active ")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='mobile-menu'>mobile-menu</button>
<span></span>

Do it no click event

Sign up to request clarification or add additional context in comments.

2 Comments

tried your variant. but when I refresh page img#mobile-menu already has class active
remove that line before click event
0

have the first line of your function disable/remove-active from both elements:

$("#img#mobile-menu,#mobile-menu-sidebar").removeClass("active");

1 Comment

thank you. didn't try your example as used another one

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.