2010-08-20 11 views
5

Tengo una función a.click() en funcionamiento en jquery ... Pero si hago clic en un delimitador, abro una nueva ventana ... Pero ¿cómo puedo evitar que el navegador abra una nueva ventana en sí?jQuery - anclar clic

ejemplo:

$('a').each(function() { 
      $(this).click(function(e) { 
       if($(this).attr('target') == '_popup') { 
        //here is code to open window (already exists) 

        //try to stop propagation, but doesn't work... 
        e.stopPropagation(); 
       } 

       hideNSL(); 
      }); 
    }); 

así, ¿cómo hago para dejar el evento ??

Respuesta

12

Trate

e.preventDefault() 

pero aquí return false también puede hacerlo el que está en la otra respuesta. preventDefault se puede utilizar en más senarios y es una forma más genérica "detener la acción de eventos por defecto", véase: .preventDefault http://api.jquery.com/event.preventDefault/

+0

esto funcionó (puesto que no puedo aceptar su respuesta ... Tengo que esperar -.-) – dododedodonl

4

Esto, unido al final de su evento click:

return false; 

Así, por ejemplo:

$('a').each(function() { 
     $(this).click(function(e) { 
      var toReturn = true; 
      if($(this).attr('target') == '_popup') { 
       //here is code to open window (already exists) 

       toReturn = false; 
      } 

      hideNSL(); 
      return toReturn; 
     }); 
}); 
3

Usted podría intentar

e.preventDefault(); 
-1

EDITAR, mi error no es una función de jQuery.

+0

sólo tiene que trabajar en Safari (que es una extensión de Safari), y funciona ... – dododedodonl

+0

No es una función jQuery. –

+1

Como no se aclaró en la pregunta, esto podría ser útil para otros usuarios que se dan cuenta de la pregunta ¿no crees? – jpluijmers

3
e.preventDefault();