2012-06-08 11 views
8

Código:¿Puedo ejecutar un enlace después de un preventDefault()?

$('#myLink').click(function (e) { 
    e.preventDefault(); 

    ... 

    if (someCondition) { 
     ... code ... 
    } else { 
     ... execute the link 
    } 
}); 

me gustaría, si es falso someCondition, ejecute el href original del enlace (así, ir por ese enlace, el cambio de la página). ¿Es esto posible?

Respuesta

5

Basta con mover el preventDefault dentro de la instrucción if/else:

$('#myLink').click(function (e) { 

    ... 

    if (someCondition) { 
     e.preventDefault(); 

     ... code ... 

    } else { 
     ... execute the link 
    } 
}); 
+2

dependiendo de cuánto tiempo toma su condicional el navegar podrían seguir el enlace original antes de llegar a esa parte del código. – deweydb

+0

Y eso merece un -1? LOL ok – Mottie

+3

Sí, porque la respuesta es incorrecta y engañosa. – deweydb

1

Sólo hay que poner el e.preventDefault(); dentro de la condición?

1

Echale un vistazo: Jquery Location Href?

Básicamente se puede utilizar window.location.href = 'http://example.com';

12
$('#myLink').click(function (e) { 
    e.preventDefault(); 

    ... 

    if (someCondition) { 
     //do stuff 
    } else { 
     location.href = $(this).attr('href'); 
    } 
}); 
Cuestiones relacionadas