J'ai une balise <a href="#"> Previous </a> 1 2 3 4 <a href="#"> Next </a>
et dans certaines conditions, je souhaite que cette balise soit complètement désactivée.
Code à partir des commentaires (c'est ainsi que le lien est généré)
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
guerrier
la source
la source
Réponses:
Essayez ceci lorsque vous ne voulez pas que l'utilisateur redirige sur clic
la source
<a href='javascript:;'>I am a shorter useless link</a>
?\t
, de sauts de ligne\n
et d'espaces pour simplement voir le code plié et agréable (pour qui? Navigateur) et vous vous inquiétez maintenant de 7 octetsvoid(0)
et / ou d'un;
, o dieu.Millions millions of tabs\t, line feeds\n and spaces
- oui, cela rend le code facile à comprendre, alors que cevoid(0)
n'est pas le cas. C'est pourquoi cela doit être supprimé ou doit être aussi court que possible. Par exemple, ici plus court - est pour comprendre (lire) pas pour "compression" ou octets ecomony. :)vous pouvez désactiver tous les liens d'une page avec cette classe de style:
maintenant, bien sûr, l'astuce est de désactiver les liens uniquement lorsque vous en avez besoin, voici comment procéder:
utilisez une classe A vide, comme ceci:
puis lorsque vous souhaitez désactiver les liens, procédez comme suit:
REMARQUE: les noms de règles CSS sont transformés en minuscules dans certains navigateurs, et ce code est sensible à la casse, il vaut donc mieux utiliser les noms de classe en minuscules pour cela
pour réactiver les liens:
consultez cette page http://caniuse.com/pointer-events pour plus d'informations sur la compatibilité du navigateur
Je pense que c'est la meilleure façon de le faire, mais malheureusement, IE, comme toujours, ne le permettra pas :) Je poste quand même, parce que je pense que cela contient des informations qui peuvent être utiles, et parce que certains projets utilisent un navigateur connu , comme lorsque vous utilisez des vues Web sur des appareils mobiles.
si vous voulez juste désactiver UN lien (je me rends seulement compte que c'était la question), j'utiliserais une fonction qui définit manuellement l'url de la page actuelle, ou non, en fonction de cette condition. (comme la solution que vous avez acceptée)
cette question était BEAUCOUP plus facile que je ne le pensais :)
la source
pointer-events:none;
Je dois vous remercier pour le je n'ai jamais su à propos de cette balise, très utile!Vous pouvez simplement lui donner un hachage vide:
ou si ce n'est pas suffisant pour un "désactiver", utilisez un gestionnaire d'événements:
la source
1
si on est ajouté plus tard.Essayez ceci en utilisant jQuery:
la source
la source
Je trouve ce moyen plus facile à mettre en œuvre. Et cela a l'avantage que vous js. N'est pas dans votre html mais dans un fichier différent. Je pense que sans le détachement. Les deux événements sont toujours actifs. Pas certain. Mais d'une certaine manière, vous n'avez besoin que de cet événement
la source
unbind
nécessaire? Je croisreturn false
oue.preventDefault()
suffirait.MDN recommande
element.removeAttribute(attrName);
de définir l'attribut sur null (ou sur une autre valeur) lorsque vous souhaitez le désactiver. Dans ce cas, ce seraitelement.removeAttribute("href");
https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute
la source
Le moyen le plus simple de désactiver un lien est simplement de ne pas l'afficher. Exécutez cette fonction chaque fois que vous souhaitez tester si votre condition est remplie pour masquer le bouton Précédent (remplacez-le
if (true)
par votre condition):Ensuite, exécutez
testHideNav()
chaque fois que vous devez vérifier si votre état a changé.la source
Utilisez plutôt un span et un javascript onclick. Certains navigateurs "sautent" si vous avez un lien et "#" href.
la source
javascript: void(0);
oujavascript:;
. Si vous effectuez un rendu à partir de Rails, effectuez simplement le rendu d'une étendue à l'endroit où vous souhaitez qu'elle soit désactivée.Ceci est également possible:
Link ne va nulle part car votre fonction sera exécutée.
la source
J'avais un besoin similaire, mais ma motivation était d'éviter que le lien ne soit double-cliqué. Je l'ai accompli en utilisant jQuery:
Le HTML ressemble à ceci:
la source
Ainsi, les solutions ci-dessus font que le lien ne fonctionne pas, mais ne rendent pas visible (AFAICT) que le lien n'est plus valide. J'ai une situation où j'ai une série de pages et que je veux désactiver (et rendre évident qu'il est désactivé) le lien qui pointe vers la page actuelle.
Alors:
Cela parcourt la liste des liens, trouve celui qui pointe vers la page actuelle (le n_root3 peut être une chose locale, mais j'imagine qu'il
document
doit avoir quelque chose de similaire), et remplace le lien par le contenu du texte du lien.HTH
la source
Merci à tous...
Mon problème résolu par le code ci-dessous:
la source
Installez ce plugin pour jquery et utilisez-le
http://plugins.jquery.com/project/jqueryenabledisable
Il vous permet de désactiver / activer à peu près n'importe quel champ de la page.
Si vous voulez ouvrir une page sous certaines conditions, écrivez une fonction de script java et appelez-la depuis href. Si la condition est remplie, vous ouvrez la page, sinon ne faites rien.
le code ressemble à ceci:
Vous pouvez également placer le lien dans un div et définir la propriété d'affichage de l'attribut Style sur aucun. cela masquera le div. Par exemple,
Cela masquera le lien. Utilisez un bouton ou une image pour rendre ce div visible maintenant en appelant cette fonction dans onclick comme:
Vous pouvez également mettre une balise d'identification sur la balise html, donc ce serait
Et obtenez cet identifiant sur votre javascript en utilisant
L'un de ces éléments doit fonctionner à coup sûr haha
la source
Une autre méthode pour désactiver le lien
la balise d'ancrage sans href réagirait comme du texte désactivé / brut
au lieu de
<a href="#"> with href </a>
voir jsFiddel
j'espère que c'est utile.
la source
Au lieu de void, vous pouvez également utiliser:
la source
0) il vaut mieux se rappeler que certains navigateurs "sautent" si vous avez un lien et "#" href. Le meilleur moyen serait donc un JavaScript personnalisé
1) Si vous recherchez le JavaScript personnalisé , le voici:
2) Vous pouvez envisager d' éviter d'utiliser les
ou
Parce que le pseudo-protocole javascript peut mettre la page en état d'attente dans certains navigateurs, ce qui peut avoir des conséquences inattendues. IE6 est connu pour cela. Mais si vous ne vous souciez pas d'IE6 et que vous testez tout, cela peut être une bonne solution.
3) Si vous avez déjà
jQuery
etbootstrap
dans votre projet, vous pouvez envisager de les utiliser comme ceci:où la
.disabled
classe vient du bootstrap.Site de bootstrap du formulaire Qupte ( ici )
et le a
custom JavaScript
été montré dans la section 1la source
Ci-dessous le code pour les liens désactivés:
une autre solution très simple est:
La première solution est efficace.
la source