Estoy tratando de hacer un botón que tenga dos funciones, ya sea que tenga clase o no cuando se haga clic. Así que traté de hacer un código javascript usando la declaración if else. No veo cuál es el problema, pero el botón no funciona.
$(document).ready(function() { $(".btn-ctrl").click(function() { if ($(".btn-ctrl > span").hasClass("close")) { function popDown() { $("#banner").slideDown(400); $(".btn-ctrl > span").removeClass("close"); } } else { function popUp() { $("#banner").slideUp(400); $(".btn-ctrl > span").addClass("close"); } } }) }).btn-ctrl es el nombre de clase para mi botón y estoy cambiando el diseño del botón agregando y eliminando class="close" en la etiqueta span. No puedo entender qué está causando el problema.
Crea funciones dentro de la condición en lugar de llamarlas. Blame funciones fuera del bloque de condición y luego llámelas o elimínelas por completo. Y antes de escribir nada, lea la sintaxis del lenguaje.
$(document).ready(function() { $(".btn-ctrl").click(function() { console.log('click') if ($(".btn-ctrl > span").hasClass("close")) { $("#banner").slideDown(400); $(".btn-ctrl > span").removeClass("close"); } else { $("#banner").slideUp(400); $(".btn-ctrl > span").addClass("close"); } }) })o
function popDown() { $("#banner").slideDown(400); $(".btn-ctrl > span").removeClass("close"); } function popUp() { $("#banner").slideUp(400); $(".btn-ctrl > span").addClass("close"); } $(document).ready(function() { $(".btn-ctrl").click(function() { console.log('click') if ($(".btn-ctrl > span").hasClass("close")) { popDown(); } else { popUp(); } }) })