Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Um problema ocorreu no script que estou fazendo.. (que inclusive tive excelentes dicas do Bruno aqui do fórum)
tudo funciona perfeitamente....
Porém resolvi colocar um setTimeout() para ele fechar a div "geral" que eu abri com slideDown.
(já tentei doTimeout() e delay() tbm sem sucesso)
Ou seja, depois de alguns segundos ela fecharia....E de fato funcionou.
Porém, ao clicar em outros links do mapa, esse maluco a cada clique inicia um novo setTimeout, sem cancelar o que já existe... então a div vai ficando louca de tanto abrir e fechar....rssss
Eu acabao de clicar em um link e ela abre, e eimediatamente fecha pq pegou o tempo de um setTimeout antigo...rsss
tentei colocar um clearTimeout apontando pra uma var onde coloquei o setTimeout... mas não funcionou....
Alguma dica?
Abração
ATUALIZANDO O CÓDIGO:
JS
<script type="text/javascript">
function id( el ){
return document.getElementById( el );
}
function hide_all(){
var divs = id('geral').getElementsByTagName('preview');
for( var i=0; i<divs.length; i++ )
{
if( divs[i].className=='preview' ) {
divs[i].style.display = 'none'; }
}
}
/ http://www.javascriptkit.com/jsref/event.shtml /
function disablelink( e ){
var evt = window.event || e
if (evt.preventDefault) //supports preventDefault?
evt.preventDefault()
else //IE browser
return false
}
window.onload = function(){
hide_all();
var as = id('mapeando').getElementsByTagName('area');
for( var i=0; i<as.length; i++ )
{
as[i].onclick = function( e ){
hide_all();
var id_el = this.href.split('#')
id( id_el[1] ).style.display = 'block';
$('div#geral').slideDown();
if (typeof(fecha) != 'undefined') {
clearTimeout( fecha );
}
var fecha = setTimeout( function( e ){
$("div#geral").slideUp('slow');
return disablelink( e );
}, 10000 );
return disablelink( e );
}
}
}
</script>
MINHAS DIVs
<div id="geral">
foreach ($array_pts as $key => $value) {
<div id="'.$value['ponto_id'].'" class="preview">
conteudo
</div>
}
</div>
MEU "MAP" DE CHAMADA
<div id="mapeando">';
$i =0;
foreach ($array_pts as $key => $value){
$i++;
<map id="mapa'.$i.'">
<area shape="circle" coords="5,5,10" href="#'.$value['ponto_id'].'" border="0">
<img src="ponto_imagem.jpg" border="0" usemap="#mapa'.$i.'" style="position:absolute; top:'.$value['pontos_mapa_coord_y'].'px;left:'.$value['pontos_mapa_coord_x'].'px; width:10px; height:10px;" />
</map>Carregando comentários...