Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Listado del cual solo me interesa que afecte a uno

Estas en el tema de Listado del cual solo me interesa que afecte a uno en el foro de Frameworks JS en Foros del Web. Buenas a todos, tengo un listado y dentro tengo una imagen, siempre la misma con el mismo id todo, lo que quiero es que al ...
  #1 (permalink)  
Antiguo 18/11/2009, 12:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Listado del cual solo me interesa que afecte a uno

Buenas a todos, tengo un listado y dentro tengo una imagen, siempre la misma con el mismo id todo, lo que quiero es que al hacer click cambie esa imagen,

Me funciona, pero me cambia todas las imagenes, o si le pongo first, me cambia solo la primera.

Este es el codigo que utilizo:

Código PHP:
<script type="text/javascript">
    $(
document).ready(function(){
    $(
"a#active").click(function(evento){
            $(
"img#active_bt").attr({src"images/style/act_off.png"});
            return 
false;
        });
    });        
</script> 
Muchas Gracias por la ayuda
  #2 (permalink)  
Antiguo 18/11/2009, 13:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

Cita:
con el mismo id todo
Esto que significa? No pueden existir dos elementos con el mismo id. Para eso esta el atributo de clase (class name).

Publica tu html por favor.

Esto:

Cita:
$("img#active_bt").attr({src: "images/style/act_off.png"});
... es super especifico y no tiene por que cambiar sino esa imagen.

Ahora, si cada link tiene una imagen, podes usar este selector:

Cita:
$("a#active").click(function(evento){
$(this + " img").attr({src: "images/style/act_off.png"});
return false;
});
Que es lo mismo que decir:

$("a#active img") , solo que usando $(this) para declarar que el punto de partida es el elemento que se clickeo.
  #3 (permalink)  
Antiguo 19/11/2009, 03:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Listado del cual solo me interesa que afecte a uno

Tienes razon en lo de los id, me lie tanto intentando que funcionara que al final quean estas burradas.

Este es el Html limpito

Código HTML:
<ul>
<li>
        <a href='?sect=31&a=del&id=11&table=links' class='action_bt'>
<img src='images/style/del.png' /></a>					
	<a href='' class='action_bt active'><img src='images/style/act_on.png' class='active_bt'/></a>
        <a href='?sect=31&a=edit&id=11&table=links' ><img src='images/style/edit.png' class='action_bt'/>
        <h3>Primer item</h3></a>
</li>
<li>
        <a href='?sect=31&a=del&id=11&table=links' class='action_bt'>
<img src='images/style/del.png' /></a>					
	<a href='' class='action_bt active'><img src='images/style/act_on.png' class='active_bt'/></a>
        <a href='?sect=31&a=edit&id=11&table=links' ><img src='images/style/edit.png' class='action_bt'/>
        <h3>segundo item</h3></a>
</li>
etc...
</ul> 
Y asi es como me queda el script despues de tu cambio, pero sigue sin funcionarme, no entiendo muy bien comofunciona el This, y como utilizarlo, no hay algun tutorial sobre this?

Código PHP:
<script type="text/javascript">
        $(
document).ready(function(){
            $(
"a").click(function(evento){
                $(
this "img.active_bt").attr({src:"images/style/act_off.png"});
                return 
false;
            });
        });        
    
</script> 
Muchas Gracias por la ayuda
  #4 (permalink)  
Antiguo 19/11/2009, 18:43
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

No hay tutorial pero podes sacar algunos ejemplos recorriendo el manual de jquery.

No te anda porque no dejastes un espacio aqui:

Cita:
$(this + "img.active_bt")
No te lo avise antes, pero fijate que en mi ejemplo yo dejo eun espacio en blanco despues de las comillas:

Cita:
$(this + " img").attr({src: "images/style/act_off.png"});
Aqui: " img" . Lo ves?
  #5 (permalink)  
Antiguo 23/11/2009, 08:30
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Listado del cual solo me interesa que afecte a uno

sep sep sep!!! usa this!!!, por ejemplo

Código HTML:
$("#uno").click(function(){
  $(this).hide();
});
pos, el code hace que al darle click en id "uno", este! ó this! se ocultara XD
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #6 (permalink)  
Antiguo 23/11/2009, 09:27
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

Si, pero la img esta dentro de un link, y estamos haciendo click en un link. Por eso al $(this) le agregamos un selector de childs:

Cita:
$(this + " img")
con los cuidados que ya hablamos arriba, de dejar un espacio en blanco dentro de las comillas.
  #7 (permalink)  
Antiguo 23/11/2009, 10:41
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Listado del cual solo me interesa que afecte a uno

aaaaaaa, entonces, tambien podria ser asi???

Código HTML:
$("#uno").click(function(){
  $(this).find("img").eq(0).attr('src', 'conejo.jpg');
});
mayid, disculpa no lei totalmente tooo el post!!! buen dato!!!
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #8 (permalink)  
Antiguo 23/11/2009, 11:31
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

Supongo que funcionaria.

Yo suelo usar alternativamente:

Cita:
$(this).children("img").attr('src', 'conejo.jpg');
  #9 (permalink)  
Antiguo 23/11/2009, 12:31
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Pregunta Respuesta: Listado del cual solo me interesa que afecte a uno

mmmm....

Código HTML:
$(this).children("img").attr('src', 'conejo.jpg');
mmm, en este caso el selector children modificaría a tooos los img que esten en this :S, no es muy general???, se le podria agregar un .eq()...

aunque... "Supongo que funcionaria" XDD!!!
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #10 (permalink)  
Antiguo 23/11/2009, 15:23
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

Y si, es muy general, pero si cada enlace tiene solo una foto, entonces va bien.
  #11 (permalink)  
Antiguo 25/11/2009, 10:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Listado del cual solo me interesa que afecte a uno

Buff muchas gracias por vuestras respuestas y por vuestro esfuerzo, he conseguido que solo me cambie la imagen que me interesa, aunque el código que he utilizado es el siguiente, por que el que me ponéis no me funcionaba:

Código HTML:
<script type="text/javascript">
	    $(document).ready(function(){
			$("a.active").click(function(){
				$("img.active_bt", this).attr({src: "images/style/act_off.png"}
				return false;
			});
		});        
	</script> 
Con esto consigo que el boton cambia de activo a inactivo, que era en un principio lo que queria, pero ahora necesito que ademas de cambiar, modifique en la base de datos el registro actual de activo a inactivo, y no hay manera, si le doy se lee todos los li que hay en listado, no puedo hacer que solo se ejecute una consulta en base a este.

No se si me explico muy bien.

Lo intento resumir, yo tengo un listado, de productos, de una base de datos, representada por un li cada uno, estos tienen varios botones para eliminar editar etc, y tambien un boton tipo switch que quiero que cambie de color y que en la base de datos se marque como activo o inactivo dependiendo de su estado.



POngo una imagen para ilustrarlo, se entiende mejor?
  #12 (permalink)  
Antiguo 25/11/2009, 11:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Listado del cual solo me interesa que afecte a uno

Bueno lo he conseguido, aunque no estoy seguro de que el codigo quede muy bonito, os lo pego aqui, por si alguien le sirve, y tambien por si alguien se le ocurre como mejorarlo

Código HTML:
 <script type="text/javascript">
	    $(document).ready(function(){
			$("a.active").click(function(){
				id = $(this).attr('href');
				a = $(this).children("img").attr('src');
				t = $(this).attr('table');
				$(this).load("core/library/active.php",{table:t,active:a,id:id});
				return false;
			});
		});        
	</script> 
Y aqui el código que lo recibe:

Código PHP:
    $table $_POST[table];
    
$id $_POST[id];
    
$active $_POST[active];
    
    if(
$active == "images/style/act_on.png"){
        
$act 2;
    }else{
        
$act 1;
    }
    
    
$query "update $table set active = $act where id_$table = $id";
    
    
$sql mysql_query($query);
    
    if(
$act == 1){
        echo 
"<img src='images/style/act_on.png' class='active_bt'/>";
    }else{
        echo 
"<img src='images/style/act_off.png' class='active_bt'/>";
    } 
Espero que sirva! un saludo y gracias
  #13 (permalink)  
Antiguo 25/11/2009, 12:44
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Listado del cual solo me interesa que afecte a uno

Estan muy lindos los switchs. Yo quiero unos asi, puedo?
  #14 (permalink)  
Antiguo 26/11/2009, 10:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 51
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Listado del cual solo me interesa que afecte a uno

A que te refieres con que si puedes? a los png? claro! si quieres te los envío en mp.
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 09:40.