JavaScript - Function CLICK

   
Vista:

Function CLICK

Publicado por Aproximo (4 intervenciones) el 22/10/2014 17:19:16
Hola chicos, llevo unas cuantas horas y no soy capaz de dar con el tema. Tengo dos div (entra y sale) y un javascrip que quiero que me sume likes a una BBDD que tengo. Pues bien, si le doy click sobre el div "sale" va perfecto y me sube a los likes un +1, pero yo quiero que los likes que tengo me aparezcan en el sale pero cuando LE DÉ CLICK AL DIV "ENTRA" y no al "sale". He probado a poner: .....................$(".entra").click(function (to) { .............. pero no funciona.

Aquí os dejo el código, seguro q es muy facil, pero no sé qué mas hacer. Muchas Gracias!!!



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<div class="entra"   >  </div>
 
<div class="sale"  data-voto="likes" data-id="<?php echo $row_Showaper['id_ap']; ?> ">
 
 
<div id="conteo"><?php echo $row_Showaper['likes']; ?> </div>
<span></span>
 
</div>
 
 
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
 
$(document).ready(function(){
 
 
		$(".sale").click(function (to) {
	 	to.preventDefault();
		var voto_hecho = $(this).data('voto');
		var id = $(this).data("id");
		var li = $(this);
		$('#conteo').hide();
		$('.up_button').hide();
 
 
 
		if(voto_hecho && id)
		{
			$.post('votos/ajax_voto.php', {'id':id, 'voto':voto_hecho}, function(data)
			{
				if (data!="voto_duplicado")
				{
					li.addClass(voto_hecho+"_votado").find("span").text(data);
					li.closest("ul").append("<span class='votado'></span>");
				}
				else li.closest("ul").append("<span class='votado'>Ya has votado!</span>");
			});
			setTimeout(function() {$('.votado').fadeOut('fast');}, 5);
		}
	});
 
});
 
</script>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Function CLICK

Publicado por xve (1595 intervenciones) el 22/10/2014 20:20:51
Hola Aproximo, la verdad es que no se como lo has hecho, pero ho he añadido esto en tu código y me ha funcionado perfectamente:
1
2
3
$(".entra").click(function(){
	alert("boton entra");
});

Si lo puedes probar y comentarnos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Function CLICK

Publicado por Aproximo (4 intervenciones) el 23/10/2014 11:57:06
Gracias por tu respuesta XVE, pero sigue igual. Desconozco el mundo de javascript, pero creo que el problema puede estar en que la etiqueta <span> está vinculada al div "sale" y no al "entra", por lo que no me muestra la información al hacer click. Sin embargo el div "conteo" sí me desaparece al hacer click porque tiene un "hide", o sea que la función en sí está bien, lo único que ocurre es que no me muestra el <span>.

A ver si me comentas algún truquillo para hacer que sea posible, que por más vueltas que le doy...
Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Function CLICK

Publicado por xve (1595 intervenciones) el 23/10/2014 17:21:31
Hola Aproximo, yo he copiado tu código en un archivo html... y me ha funcionado perfectamente...

Aqui te adjunto el código... veras que si pulsas sobre el texto "Entra", te mostrara el alert()...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<div class="entra">Entra</div>
 
<div class="sale" data-voto="likes" data-id="xx">sale
	<div id="conteo">conteo</div>
	<span></span>
</div>
 
 
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
 
$(document).ready(function(){
 
	$(".entra").click(function(){
		alert("boton entra");
	})
 
	$(".sale").click(function (to) {
		to.preventDefault();
		var voto_hecho = $(this).data('voto');
		var id = $(this).data("id");
		var li = $(this);
		$('#conteo').hide();
		$('.up_button').hide();
 
 
 
		if(voto_hecho && id)
		{
			$.post('votos/ajax_voto.php', {'id':id, 'voto':voto_hecho}, function(data)
			{
				if (data!="voto_duplicado")
				{
					li.addClass(voto_hecho+"_votado").find("span").text(data);
					li.closest("ul").append("<span class='votado'></span>");
				}
				else li.closest("ul").append("<span class='votado'>Ya has votado!</span>");
			});
			setTimeout(function() {$('.votado').fadeOut('fast');}, 5);
		}
	});
 
});
 
</script>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Function CLICK

Publicado por Vainas (239 intervenciones) el 23/10/2014 20:28:57
Buenas:

Tu problema aparte de cambiar $(".sale") por $(".entra") es que dentro de la funcion llamas a datos que se encuentran dentro de esa etiqueta.

$(this).data('voto'); por ejemplo hace referencia que dentro de la etiqueta "div" con class "sale" tiene un atributo "data-voto" del cual intenta obtener su valor, al igual con $(this).data("id") que obtiene el parametro "data-id". Para finalizar la se hace uso de $(this) que hace referencia a la propia etiqueta "div" para luego cambiar su clase etc etc.

Si logras apuntar de alguna forma estos parametros a su nueva ubicacion podrias dar con tu objetivo. Yo probaria:

$(this).data('voto') por $(".sale").data('voto')
$(this).data("id"); por $(".sale").data("id");
$(this) por $(".sale");

Espero que sirva. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Function CLICK

Publicado por Aproximo (4 intervenciones) el 24/10/2014 09:30:19
Gracias Vainas !!

Funciona perfecto! Eso era! Gracias igualmente a XVE, que también te tengo en el recuerdo porque me ayudaste un par de veces hace un tiempo.

Os debo una. Tiempo al tiempo.. jejeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar