Soy nuevo en JS y quiero saber si hay alguna forma posible de condicionar una clase.
Te pondré en contexto. Estoy tratando de deshabilitar la barra de desplazamiento para mi barra de navegación móvil y obtuve esto hasta ahora:
<style> .no-scroll { overflow: hidden; } </style> <script> $('.checkbtn').on('click', function() { $('body').toggleClass('no-scroll'); }); if (/* I NEED YOUR HELP HERE */) { $('.checkbtn').on('click', function() { $('body').removeClass('no-scroll'); }); } </script>¿Estoy bien hasta ahora? De todos modos, mi pregunta es ¿cómo puedo saber SI ese 'cuerpo' tiene que tener una clase sin desplazamiento para que funcione?
Editar: Mi clase de icono de barra de navegación de hamburguesas se llama ".checkbtn"
puedes usar el método hasClass
por ejemplo
if($('body').hasClass('no-scroll'){ // your code }Lo único que necesita para que el botón cambie esa clase en el cuerpo es:
<script> document .querySelector('.checkbtn') // <button> or null if not found .addEventListener('click', () => document.body.classList.toggle('no-scroll')); </script>Para poder tener varios botones y no tener un error cuando no hay botones con la clase, puede recorrer los elementos encontrados de la siguiente manera:
<script> const listener = () => document.body.classList.toggle('no-scroll'); for (const btn of document.querySelectorAll('.checkbtn')) btn.addEventListener('click', listener); </script>