Tengo una etiqueta <a href="#"> Previous </a> 1 2 3 4 <a href="#"> Next </a>
y, en algunas condiciones, quiero que esta etiqueta esté completamente desactivada.
Código de comentarios (así es como se genera el enlace)
if (n_index != n_pages)
a = a+'<li><a href="#" onclick="javascript:paginateAjaxPage('+(n_index+1) +','+stype+');">></a></li><li><a href="#" onclick="javascript:paginateAjaxPage('+n_pages+','+stype+');" >>></a></li>';
else
a = a+'<li><a style="cursor: pointer;" onclick="return false;">></a></li><li><a style="cursor: pointer;" onclick="return false" >>></a></li>';
a = a+'</ul></div>';
javascript
html
Guerrero
fuente
fuente
Respuestas:
Pruebe esto cuando no desee que el usuario redirija al hacer clic
fuente
<a href='javascript:;'>I am a shorter useless link</a>
?\t
, avances de línea\n
y espacios para ver el código doblado y agradable (¿para quién? Navegador) y ahora se preocupan por 7 bytesvoid(0)
y / o un;
, oh dios.Millions millions of tabs\t, line feeds\n and spaces
sí, esto hace que el código sea fácil de entender, mientrasvoid(0)
que no lo es. Es por eso que esto debe eliminarse o debe ser lo más corto posible. Por ejemplo, aquí más corto: es para comprender (leer), no para "compresión" o ecología de bytes. :)puede desactivar todos los enlaces en una página con esta clase de estilo:
ahora, por supuesto, el truco es desactivar los enlaces solo cuando sea necesario, así es como se hace:
use una clase A vacía, como esta:
luego, cuando desee desactivar los enlaces, haga esto:
NOTA: Los nombres de las reglas CSS se transforman a minúsculas en algunos navegadores, y este código distingue entre mayúsculas y minúsculas, por lo que es mejor utilizar nombres de clases en minúsculas para esto.
para reactivar enlaces:
consulte esta página http://caniuse.com/pointer-events para obtener información sobre la compatibilidad del navegador
Creo que esta es la mejor manera de hacerlo, pero lamentablemente IE, como siempre, no lo permitirá :) Estoy publicando esto de todos modos, porque creo que contiene información que puede ser útil, y porque algunos proyectos usan un navegador conocido. , como cuando usa vistas web en dispositivos móviles.
Si solo desea desactivar UN enlace (solo me doy cuenta de que ESA era la pregunta), usaría una función que establezca manualmente la URL de la página actual, o no, en función de esa condición. (como la solución que aceptó)
esta pregunta fue MUCHO más fácil de lo que pensaba :)
fuente
pointer-events:none;
No sabía nada de esa etiqueta, ¡fue muy útil!Simplemente puede darle un hash vacío:
o si eso no es lo suficientemente bueno como "deshabilitar", use un controlador de eventos:
fuente
1
si se agrega uno más tarde.Prueba esto usando jQuery:
fuente
fuente
Encuentro esta forma más fácil de implementar. Y tiene la ventaja de que js. No está dentro de su html sino en un archivo diferente. Creo que sin la desvinculación. Ambos eventos siguen activos. No estoy seguro. Pero de alguna manera solo necesitas este evento
fuente
unbind
necesario? Creoreturn false
oe.preventDefault()
sería suficiente.MDN recomienda
element.removeAttribute(attrName);
establecer el atributo en nulo (o algún otro valor) cuando desee deshabilitarlo. En este caso seríaelement.removeAttribute("href");
https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute
fuente
La forma más sencilla de desactivar un enlace es simplemente no mostrarlo. Ejecute esta función siempre que desee probar si se cumple su condición para ocultar el botón Anterior (reemplácelo
if (true)
con su condición):Luego, ejecute
testHideNav()
cada vez que necesite hacer la verificación si su condición ha cambiado.fuente
En su lugar, utilice un span y un onclick de JavaScript. Algunos navegadores "saltan" si tiene un enlace y "#" href.
fuente
javascript: void(0);
ojavascript:;
. Si está renderizando desde Rails, simplemente renderice un tramo donde lo desee deshabilitar.Esto también es posible:
El enlace no va a ninguna parte porque se ejecutará su función.
fuente
Tenía una necesidad similar, pero mi motivación era evitar que se hiciera doble clic en el enlace. Lo logré usando jQuery:
El HTML se ve así:
fuente
Entonces, las soluciones anteriores hacen que el enlace no funcione, pero no hacen visible (AFAICT) que el enlace ya no es válido. Tengo una situación en la que tengo una serie de páginas y quiero deshabilitar (y hacer obvio que está deshabilitado) el enlace que apunta a la página actual.
Entonces:
Esto recorre la lista de enlaces, encuentra el que apunta a la página actual (el n_root3 podría ser algo local, pero imagino que
document
debe tener algo similar) y reemplaza el enlace con el contenido del texto del enlace.HTH
fuente
Gracias a todos...
Mi problema resuelto por el siguiente código:
fuente
Instale este complemento para jquery y úselo
http://plugins.jquery.com/project/jqueryenabledisable
Le permite deshabilitar / habilitar prácticamente cualquier campo en la página.
Si desea abrir una página en alguna condición, escriba una función de script java y llámela desde href. Si la condición es satisfactoria, abra la página, de lo contrario, no haga nada.
el código se ve así:
También puede poner el enlace en un div y establecer la propiedad de visualización del atributo Style en none. esto ocultará el div. Por ejemplo,
Esto ocultará el enlace. Use un botón o una imagen para hacer visible este div ahora llamando a esta función en onclick como:
También puede poner una etiqueta de identificación a la etiqueta html, por lo que sería
Y obtenga esta identificación en su javascript usando
Uno de esto debe funcionar seguro jaja
fuente
Otro método para deshabilitar el enlace
La etiqueta de anclaje sin href reaccionaría como texto sin formato / deshabilitado
en vez de
<a href="#"> with href </a>
ver jsFiddel
Espero que esto sea útil.
fuente
En lugar de void también puedes usar:
fuente
0) es mejor que recuerde que algunos navegadores "saltan" si tiene un enlace y "#" href. Entonces, la mejor manera sería un JavaScript personalizado
1) Si buscas el JavaScript personalizado , aquí está:
2) Puede considerar evitar usar lo siguiente
o
Porque el pseudoprotocolo javascript puede poner la página en un estado de espera en algunos navegadores, lo que puede tener consecuencias inesperadas. IE6 es conocido por eso. Pero si no le importa IE6 y está probando todo, puede ser una buena solución.
3) Si ya lo tiene
jQuery
ybootstrap
en su proyecto, puede considerar usarlos así:dónde
.disabled
clase viene de bootstrap.Sitio de arranque de formulario Qupte ( aquí )
y
custom JavaScript
se mostró en la sección 1fuente
A continuación el código para enlaces deshabilitados:
otra solución muy simple es:
La primera solución es eficiente.
fuente