I am getting insane. As you can see at below code snippet - everything works well. But not in my project. In my project works only code in resize(). When I resize window - ok, it's nice, I can add and remove class 'open' by click on item. But if I refresh page and not resize window - I cant't add class. Can't do nothing. I am spending few hours with this thing. Can somebody help me? Why isn't it working?
(function ($) {
$('.nav-item').on('click', function() {
$(this).toggleClass('open');
$(this).siblings().removeClass('open');
});
$(window).resize(function() {
if($(window).width() < 1200) {
$('.nav-item').on('click', function() {
$(this).toggleClass('open');
$(this).siblings().removeClass('open');
});
}
});
})(jQuery);
.open {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="main-menu">
<li class="nav-item">
<span class="nav-link">Menu item 1</span>
</li>
<li class="nav-item">
<span class="nav-link">Menu item 2</span>
<ul class="dropdown-menu">
<li class="dropdown-item">
<span>Menu item 2 subitem 1</span>
</li>
<li class="dropdown-item">
<span>Menu item 2 subitem 2</span>
</li>
</ul>
</li>
<li class="nav-item">
<span class="nav-link">Menu item 3</span>
<ul class="dropdown-menu">
<li class="dropdown-item">
<span>Menu item 3 subitem 1</span>
</li>
<li class="dropdown-item">
<span>Menu item 3 subitem 2</span>
</li>
</ul>
</li>
</ul>
I work with Drupal 8 CMS (if it's important - but I worked with jQuery, click() and Drupal milion of times and it was always fine.