Saltar al contenido

¿Cómo habilitar o deshabilitar un ancla usando jQuery?

Solución:

Para evitar que un ancla siga el especificado href, Sugeriría usar preventDefault():

// jQuery 1.7+
$(function () {
    $('a.something').on("click", function (e) {
        e.preventDefault();
    });
});

// jQuery < 1.7
$(function () {
    $('a.something').click(function (e) {
        e.preventDefault();
    });

    // or 

    $('a.something').bind("click", function (e) {
        e.preventDefault();
    });
});

Ver:

http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

También vea esta pregunta anterior sobre SO:

jQuery deshabilitar un enlace

La aplicación en la que estoy trabajando actualmente lo hace con un estilo CSS en combinación con javascript.

a.disabled { color:gray; }

Entonces, cuando quiera desactivar un enlace, llamo

$('thelink').addClass('disabled');

Luego, en el controlador de clics para ‘thelink’ una etiqueta, siempre ejecuto una verificación a primera hora

if ($('thelink').hasClass('disabled')) return;

Encontré una respuesta que me gusta mucho más aquí.

Se ve como esto:

$(document).ready(function(){
    $("a").click(function () { 
        $(this).fadeTo("fast", .5).removeAttr("href"); 
    });
});

Habilitar implicaría establecer el atributo href

$(document).ready(function(){
    $("a").click(function () { 
        $(this).fadeIn("fast").attr("href", "http://whatever.com/wherever.html"); 
    });
});

Esto le da la apariencia de que el elemento de anclaje se convierte en texto normal y viceversa.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *