Foros del Web » Programando para Internet » Javascript »

onmouseout, onmouseover no funciona en bucle

Estas en el tema de onmouseout, onmouseover no funciona en bucle en el foro de Javascript en Foros del Web. Hola, busque en el foro y no encotre la solucion. Esta accion lo que hace es que al pasar el mouse por arriba de un ...
  #1 (permalink)  
Antiguo 19/04/2009, 16:40
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 17 años, 9 meses
Puntos: 1
onmouseout, onmouseover no funciona en bucle

Hola, busque en el foro y no encotre la solucion.

Esta accion lo que hace es que al pasar el mouse por arriba de un link, cambia una imagen que esta en otro lugar, referenciandola por el nombre creo.

Esta accion de java me funciona fuera del bucle pero no dentro.

Aca el codigo dentro del bucle:

<table>
<?php do { ?>
<tr>
<td><img name="off" src="images/off.jpg" width="67" height="24" border="0" alt="" />
</td>
<td>
<a href="productos.php" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage('off','','images/on.jpg',1);">
<?php echo $row['Familia']; ?></a>
</td>
</tr>
<?php } while ($row = mysql_fetch_assoc($result)); ?>
</table>

Alguien me podria decir porque no funciona?

Mil gracias
  #2 (permalink)  
Antiguo 19/04/2009, 16:47
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: onmouseout, onmouseover no funciona en bucle

Es un tema de javascript. Estás usando el mismo identificador (que esa función espera sea único) para varias imágenes.
  #3 (permalink)  
Antiguo 19/04/2009, 16:52
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: onmouseout, onmouseover no funciona en bucle

Ah..., y como podria solucionarlo, es decir la idea es que al pasar el mouse por arriba de datos que se hacen links que salen de una base de datos, por ejemplo, me coloque un icono o una imagen o algo al lado???

Alguna variante o algo parecido??
  #4 (permalink)  
Antiguo 19/04/2009, 16:55
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: onmouseout, onmouseover no funciona en bucle

Reportá el mensaje para que lo muevan a javascript ;)
  #5 (permalink)  
Antiguo 19/04/2009, 17:55
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: onmouseout, onmouseover no funciona en bucle

si quieres un identificador único, y sacas los datos de una tabla en BD, entonces concatena el identificador de dicha imagen a off.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #6 (permalink)  
Antiguo 19/04/2009, 19:04
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: onmouseout, onmouseover no funciona en bucle

mmm dificil, los datos de la imagen no los saco de una base lo que saco son los nombre de las familias despues el html los hace link y ahi es donde entra el java...

Es algo basico y no le encuentro la vuelta, y si lo paso el post a java no se si me van a dar bola porque tiene php .....
  #7 (permalink)  
Antiguo 19/04/2009, 19:09
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: onmouseout, onmouseover no funciona en bucle

entonces utiliza un contador y ese vas concatenando al identificador
off1,off2,...
el contador podría comenzar por uno

$i=1;
y dentro del do while $i++
para concatenar 'off'.$i;

no confundas JAVA con Javascript son dos cosas muy diferentes.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #8 (permalink)  
Antiguo 19/04/2009, 20:34
 
Fecha de Ingreso: julio-2006
Mensajes: 18
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: onmouseout, onmouseover no funciona en bucle

Muchas gracaias a todos en especial a argy

Caso cerrado dejo el codigo para los que lo necesiten:

<table>
<?php $i = 0; ?>
<?php do { ?>
<tr>
<td><img name="<?php echo 'off'.$i; ?>" src="images/off.jpg" width="67" height="24" border="0" alt="" />
</td>
<td>
<a href="productos.php" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage('<?php echo 'off'.$i; ?>','','images/on.jpg',1);">
<?php echo $row['Familia']; ?></a>
<?php $i++; ?>
</td>
</tr>
<?php } while ($row = mysql_fetch_assoc($result)); ?>
</table>


Recuerden que necesitan cargar antes este script para que funcione este escript:


<script language="JavaScript1.2" type="text/javascript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//-->
</script>
  #9 (permalink)  
Antiguo 19/04/2009, 21:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: onmouseout, onmouseover no funciona en bucle

Tema trasladado desde PHP
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 22:49.