Estoy tratando de mostrar un div al hacer clic. La función que se supone que hace que la magia suceda es:

    $(document).ready(function showGogoasa() {
      $('.gogoasa-newsletter').show();
    });

Lamentablemente, no hace nada. Lo que me hace rascarme la cabeza durante horas, ya que he hecho pequeñas cosas como esta en el pasado y funcionaron. Estoy tratando de hacer esta modificación en el sitio web de un cliente.

Cuando reviso la consola firebug dice lo siguiente: ReferenceError: showGogoasa no está definido

Intenté buscar en Google este tipo de error, pero los casos similares tuvieron este tipo de problema por no declarar una variable. Bueno, no tengo ninguna variable.

-3
Darkkz 10 dic. 2015 a las 13:22

3 respuestas

La mejor respuesta

Estoy tratando de mostrar un div al hacer clic.

Su código ejecuta la función en un evento ready y no muestra el error que describe.

Presumiblemente (habría ayudado si hubiera proporcionado un caso de prueba completo) también está tratando de vincular la función como un controlador de clic, pero no puede hacerlo porque lo ha definido utilizando una expresión de función y no una declaración de función ( por lo que no crea una variable llamada showGogoasa fuera de su propio alcance).

Defina la función por separado, luego asigne llamarlo y vincularlo como un controlador de eventos de clic en el evento listo.

$(document).ready(function ready_handler() {
  function showGogoasa() { // Define it as a variable in the current scope
      $('.gogoasa-newsletter').show();
  }
  showGogoasa(); // call it now
  $("button").on("click", showGogoasa); // call it then
});

Bueno, no tengo ninguna variable.

Ese es el problema :)

Las funciones son objetos de primera clase y cuando dices showGogoasa() eso significa "Obtener el valor de showGogoasa y llamarlo como una función".

4
Quentin 10 dic. 2015 a las 10:35

Habría sido útil usar jsfiddle o proporcionar más código.

Un problema es que te falta el controlador de eventos de clic. Por ejemplo, cuando el usuario hace clic en X, entonces Y debería aparecer / mostrar. El siguiente ejemplo simple puede ayudarlo a ver cómo funciona:

http://jsfiddle.net/fionaredmond/1vbagj12/

$(document).ready(function(){
    $("#showGogoasa").click(function(){
        $(".gogoasa-newsletter").show();
    });
});
0
Inspector Squirrel 10 dic. 2015 a las 11:01

$(document).ready(function() { $('#idOfYourClickerElement').on('click', function(){ $('.gogoasa-newsletter').show(); }); });

0
Johannes Klauß 10 dic. 2015 a las 11:10