Foros del Web » Programando para Internet » Javascript »

Anular link al pulsar

Estas en el tema de Anular link al pulsar en el foro de Javascript en Foros del Web. Hola a todos, Me da un poco de verguenza preguntar esto... pero llevo un rato intentandolo y no hay forma, jeje. Mirar tengo un link ...
  #1 (permalink)  
Antiguo 29/05/2010, 05:56
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 8 meses
Puntos: 19
Anular link al pulsar

Hola a todos,

Me da un poco de verguenza preguntar esto... pero llevo un rato intentandolo y no hay forma, jeje. Mirar tengo un link con una la funcion 'parar' en el evento onclick. Lo que quiero es que al pulsar el link no se actualice la ventana, solo que no puedo poner nada mas en la etiqueta de link, mirar el codigo:

No suelo poner un cacho codigo tan grande como este, pero es que en este caso influye, ya que he probado a hacerlo fuera de este contexto y he obtenido buenos resultados, el problema es que en mi codigo de mas abajo selecciono los elementos con funciones:

Código HTML:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2.         //start:
  3.             window.onload = function()
  4.                 {      
  5.                     //event's:
  6.                         var super_link=getElementsByClass('super_link',null,null);
  7.                         for(var i in super_link)
  8.                             {
  9.                                 addEvent(super_link[i],'click',parar);
  10.                             }
  11.                 }
  12.         //event's:
  13.             function parar()
  14.                 {
  15.                     alert('ahora deberia pararse');
  16.                     this.onclick = function(){return false;}
  17.                     return false;
  18.                     //pero el link se envia de todos modos.
  19.                 }
  20.         //select elementos by class
  21.                 function getElementsByClass(searchClass,node,tag)
  22.                     {
  23.                         var classElements = new Array();
  24.                         if ( node == null )
  25.                                 node = document;
  26.                         if ( tag == null )
  27.                                 tag = '*';
  28.                         var els = node.getElementsByTagName(tag);
  29.                         var elsLen = els.length;
  30.                         var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  31.                         for (i = 0, j = 0; i < elsLen; i++) {
  32.                                 if ( pattern.test(els[i].className) ) {
  33.                                         classElements[j] = els[i];
  34.                                         j++;
  35.                                 }
  36.                         }
  37.                         return classElements;
  38.                     }
  39.            
  40.                 function addEvent(o,t,f)
  41.                     {
  42.                         if(o.addEventListener){
  43.                             o.addEventListener(t,f,false);
  44.                         }else if(o.attachEvent){
  45.                             var fn=function(){
  46.                                 f.call(o,window.event);
  47.                             }
  48.                             o.attachEvent('on'+t,fn);
  49.                         }else
  50.                             throw 'No se puede asignar el evento.';
  51.                     }
  52.  
  53.  
  54. <a href="pagina.html" class="super_link">link</a>

Como podeis ver al pulsar al pulsar en el link se abre un alert, pero luego se actualiza la ventana. ¿Como podria hacer para que al pulsar no se envia acualizase lña ventana con el href?
  #2 (permalink)  
Antiguo 29/05/2010, 06:32
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, 6 meses
Puntos: 834
Respuesta: Anular link al pulsar

Probá así:
Código PHP:
function parar(e)
                {
            var 
evt=|| window.event;
            if(
evt.preventDefault)
                
evt.preventDefault();
                    else
                        
evt.returnValue=false;
                    
                } 
  #3 (permalink)  
Antiguo 29/05/2010, 09:28
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 8 meses
Puntos: 19
Respuesta: Anular link al pulsar

Hola Panino5001,

Funciona perfecto... un copy y pega y listo. Muchas gracias!... es que habia probado en usar return false... pero no hacia nada... ahora mismo miro lo que significa preventDefault.

Muchas gracias!.

Etiquetas: anular, link, pulsar
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 03:32.