Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/12/2010, 09:58
rodrigo_1986
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: perdida del foco en celda al mostrar div

Gracias por la solución quimfv, ya estaba pensando antes una solución asi, pero no la había probado.
Funciona, pero no me funco en iexplore, porq no me reconoce el evento, asi q tuve q hacerlo de la sgte forma:
Código PHP:
<head>

<
script type="text/javascript" src="/jquery/jquery-1.4.2.min.js">

<
script language="JavaScript" type="text/JavaScript">
 $(
document).ready(function(){      //jquery
        
document.onmousemove=function(e){
           
setPosition(e)
        }
  });
var 
hilo
var py 0
var px 0
function setPosition(e){
    
evt=window.event || e
    py 
evt.clientY;
    
px evt.clientX;
}
function 
showdiv(id){
    
clearTimeout(hilo)
    
hilo setTimeout(function(){
        
showdivEject(id)
    }, 
500)
}
   
function 
showdivEject(id){    
    
div=document.getElementById('flotante');
    
detalle=document.getElementById(id);
    if(
detalle.innerHTML.length 0){
        
div.innerHTML=detalle.innerHTML
        div
.style.display='block';
        
div.style.top=( py 10 )+"px";
        
div.style.left=( px 10 )+"px";
    }
}

function 
hidediv() {
    
clearTimeout(hilo)
    
div document.getElementById('flotante');
    
div.style.display='none';
}
 
  
</script>
<style type="text/css">
<!--
.flotante {
   position:absolute;
    opacity: 0.85;
    display:none;
    font-family:Arial;
    font-size:12px;
    height:auto;
    width:auto;
    max-width: 50%;
    background-color:#f1f1f1;
    padding: 6px 6px 6px 6px;
    line-height: 15px;
    overflow: auto;
}
-->
</style>
</head>
<body>
<table>
  <tr>
    <td id="c1" onmouseover="showdiv(this.id)" onmouseout="hidediv()">1</td>
    <td id="c2"  onmouseover="showdiv(event,this.id)" onmouseout="hidediv()">2</td>
  </tr>
  <tr>
    <td id="c3"  onmouseover="showdiv(this.id)" onmouseout="hidediv()">3</td>
    <td id="c4"  onmouseover="showdiv(this.id)" onmouseout="hidediv()">4</td>
  </tr>
</table>
<div class="flotante" >
</div> 
</body> 

bueno lo que hace este codigo, es que cuando el puntero del mouse pase por una celda, se dispare un hilo que despues de 1/2 segundo muestre el cuadro emergente a un lado del puntero del mouse, siempre y cuando el puntero siga en la misma celda por al menos 1/2 segundo
funciona en todos lo exploradores, incluso en ieplorer 6