Cómo hacer que una función JavaScript se ejecute solo al hacer clic en un enlace

  • Autor Autor gmsegui
  • Fecha de inicio Fecha de inicio
G

gmsegui

Dseda
Insertar CODE, HTML o PHP:
<div id="mostrarDiv"><a href="javascript:mostrardiv();" onclick="javascript:pedro();">Mostrar Div</a></div>
<div id="flotante" style="display:none;"> 

<div style="display: none;" class="verify" id="verify">Contenido oculto</div> 
<div style="display: block;" class="adoptim" id="askPws"> 
<form name="counter"> 
Espere por favor... <input type="text" size="1" name="d2" class="countdown" /> Segundos 
</form>


<script type="text/javascript"> 
<!-- 
// 
var milisec=0 
var seconds=15 
var once=0 
document.counter.d2.value="15" 

function pedro(){ 
if ((milisec==0) && (seconds==0) && (once==0)) { 
document.getElementById("verify").style.display="block"; 
document.getElementById("dlb").style.display="block"; 
document.getElementById("askPws").style.display="none"; 
once=1; 
} 
if (milisec<=0){ 
milisec=9 
seconds-=1 
} 
if (seconds<=-1){ 
milisec=0 
seconds+=1 
} 
else 
milisec-=1 
document.counter.d2.value=seconds 
setTimeout("pedro()",100) 
} 
if ((milisec==0) && (seconds==0)) { 
pause(1000); 
pedro(); 
} else { 
pedro(); 
} 
--> 
</script>
</div>

Bueno ese es el codigo, mi problema es que pedro() se ejecuta automaticamente al cargar la pagina, yo quiero que se ejecute cuando hago click en "mostrar div" ... por eso puse el onclick... pero se ejecuta automaticamente..
 
Si pudieras poner más parte del código. Hasta aquí el debugger solo me avienta un error porque no encuentra el elemento dlb. Y se ejecuta hasta que hago click en el enlace.

Te recomiendo que utilices algo así para agregar eventos.

function addEventHandler(elem,eventType,handler) {
if (elem.addEventListener)
elem.addEventListener (eventType,handler,false);
else if (elem.attachEvent)
elem.attachEvent ('on'+eventType,handler);
}

De esta forma tu código html queda más limpio. ejemplo

var link=document.getElementById("idenlace");
function mifuncion(){
--
}
addEventHandler(link,"click",mifuncion);
ó
addEventHandler(link,"click",function(){
-----
});
 
Hasta abajo tienes este codigo que llama a pedro():
PHP:
if ((milisec==0) && (seconds==0)) { 
	pause(1000); 
	pedro(); 
	} else { 
	pedro(); 
}

P.D: Quizas lo querias poner dentro de la funcion, pero esta fuera de ella, asi que aunque no le des click se llama a pedro().

Saludos!
 
Atrás
Arriba