Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2010, 05:56
Avatar de salbatore
salbatore
 
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
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?