Foros del Web » Programando para Internet » Jquery »

Error al sumar 1 a un div - Jquery

Estas en el tema de Error al sumar 1 a un div - Jquery en el foro de Jquery en Foros del Web. Que tal a todos, espero me puedan ayudar. Lo que quiero hacer, es un botón tipo "Me gusta", en donde si no está el mouse ...
  #1 (permalink)  
Antiguo 13/06/2012, 23:32
 
Fecha de Ingreso: mayo-2006
Mensajes: 9
Antigüedad: 17 años, 11 meses
Puntos: 0
Error al sumar 1 a un div - Jquery

Que tal a todos, espero me puedan ayudar.

Lo que quiero hacer, es un botón tipo "Me gusta", en donde si no está el mouse sobre, tiene un estilo, al poner el mouse, cambia. Este botón muestra cuantos me gusta tiene, si alguien le da click se le suma y el estilo cambia como si estuviera sobre el botón. Si vuelve a dar click, es como si señalara que no le gusta, se resta uno y el estilo cambia al primero.

El problema es que el primer click está correcto, pero para quitar el "me gusta" se tiene que dar dos veces click.

Anexo el código, ojalá me puedan decir en que estoy equivocado, no se mucho de Jquery.

Código PHP:
function fav(num){    
    var 
variable_post=num;
    
//// Verificamos la ruta entregada por miscript.php
    
$("#fav" num).click(function(){
        if( $(
this).attr("class") == "fav"){                           
            $(
this).removeClass().addClass("fav_ret");
            $.
post("include/votes.php", { variablevariable_post }, function(data){
            }); 
            var 
contenido = $("#nav" num).text();
            var final = 
parseInt(contenido) + parseInt(1);
            $(
"#nav" num).html(final);
        } else {
            $(
this).removeClass().addClass("fav");
            $.
post("include/votes.php", { variablevariable_postvariable2}, function(data){
            }); 
            var 
contenido = $("#nav" num).text();
            var final = 
parseInt(contenido) - parseInt(1);
            $(
"#nav" num).html(final);
        }
    });         

Gracias
  #2 (permalink)  
Antiguo 13/06/2012, 23:50
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Error al sumar 1 a un div - Jquery

No entiendo para qué introduces un listener de evento dentro de una función.

Haces onclick="fav(num)"??

Entonces no entiendo la dinámica de tus botones.
  #3 (permalink)  
Antiguo 14/06/2012, 00:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 9
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Error al sumar 1 a un div - Jquery

Si, tienes que hacer click en ese botón que tiene una llamada a la función que anexé. Lo que quiero es que al dar click en ("fav" +num) se cambie de estilo, se sume uno. Si vuelve a dar click, regrese al estilo anterior u se reste uno.
Gracias por tu atención
  #4 (permalink)  
Antiguo 14/06/2012, 00:28
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Error al sumar 1 a un div - Jquery

Cita:
Iniciado por svssergio Ver Mensaje
Si, tienes que hacer click en ese botón que tiene una llamada a la función que anexé. Lo que quiero es que al dar click en ("fav" +num) se cambie de estilo, se sume uno. Si vuelve a dar click, regrese al estilo anterior u se reste uno.
Gracias por tu atención
Si los botones tienen un mismo class con hacer un simple

$(".claseseguir").click(function(){

atributos = $(this).attr();

})

$(".clasesiguiendo").click(function(){

atributos = $(this).attr();

})

Si llamas a una función y luego agregas el listener para el evento (el listener se agrega cuando se ejecuta la función), habrá un desfase de un clic de diferencia entre la ejecución de la función y el desencadenamiento del código del listener, y por tanto necesitarás 2 clics para que se ejecute lo que quieres.
  #5 (permalink)  
Antiguo 14/06/2012, 10:48
 
Fecha de Ingreso: mayo-2006
Mensajes: 9
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Error al sumar 1 a un div - Jquery

Muchas gracias, quedó resuelto, pondré el código por si algún despistado como yo lo llega a necesitar.

Código PHP:
function fav(num){    
    var 
variable_post=num;
    var 
nombre "#fav" num;
    
//// Verificamos la ruta entregada por miscript.php
    
if( $(nombre).attr("class") === "fav"){                           
        $(
nombre).removeClass().addClass("fav_ret");
        $.
post("include/votes.php", { variablevariable_post }, function(data){
        }); 
        var 
contenido = $("#nav" num).text();
        var final = 
parseInt(contenido) + parseInt(1);
        $(
"#nav" num).html(final);
    } else {
        $(
nombre).removeClass().addClass("fav");
        $.
post("include/votes.php", { variablevariable_postvariable2}, function(data){
        }); 
        var 
contenido = $("#nav" num).text();
        var final = 
parseInt(contenido) - parseInt(1);
        $(
"#nav" num).html(final);
    }        


Etiquetas: div+css+jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:27.