J'ai besoin d'afficher une info-bulle sur un bouton désactivé et de la supprimer sur un bouton activé. Actuellement, cela fonctionne à l'envers.
Quelle est la meilleure façon d'inverser ce comportement?
$('[rel=tooltip]').tooltip();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<hr>
<button class="btn" disabled rel="tooltip" data-title="Dieser Link führt zu Google">button disabled</button>
<button class="btn" rel="tooltip" data-title="Dieser Link führt zu Google">button not disabled</button>
Voici une démo
PS: je veux garder l' disabled
attribut.
javascript
jquery
html
twitter-bootstrap
twitter-bootstrap-tooltip
Lorraine Bernard
la source
la source
Réponses:
Voici un code de travail: http://jsfiddle.net/mihaifm/W7XNU/200/
L'idée est d'ajouter l'info-bulle à un élément parent avec l'
selector
option, puis d'ajouter / supprimer l'rel
attribut lors de l'activation / désactivation du bouton.la source
Vous pouvez envelopper le bouton désactivé et placer l'info-bulle sur le wrapper:
Si le wrapper a,
display:inline
alors l'info-bulle ne semble pas fonctionner. Utilisationdisplay:block
etdisplay:inline-block
semble fonctionner correctement. Il semble également fonctionner correctement avec un wrapper flottant.MISE À JOUR Voici un JSFiddle mis à jour qui fonctionne avec le dernier Bootstrap (3.3.6). Merci à @JohnLehmann pour avoir suggéré
pointer-events: none;
le bouton désactivé.http://jsfiddle.net/cSSUA/209/
la source
btn-group
s?Cela peut être fait via CSS. La propriété "pointer-events" est ce qui empêche l'info-bulle d'apparaître. Vous pouvez désactiver les boutons pour afficher les info-bulles en remplaçant la propriété "pointer-events" définie par bootstrap.
la source
[disabled]
boutons. Ne voyez pas non plus Bootstrap (2.3.2) attribuant des événements de pointeur n'importe où dans la source.Si vous êtes désespéré (comme je l'étais) pour des info-bulles sur les cases à cocher, les zones de texte et autres, alors voici ma solution de contournement de hackey:
Exemples de travail: http://jsfiddle.net/WB6bM/11/
Pour ce que cela vaut, je pense que les info-bulles sur les éléments de formulaire désactivés sont très importantes pour l'UX. Si vous empêchez quelqu'un de faire quelque chose, dites-lui pourquoi.
la source
Ces solutions de contournement sont laides. J'ai débogué le problème est que le bootstrap définit automatiquement les événements de pointeur de propriété CSS : aucun sur les éléments désactivés.
Cette propriété magique fait que JS ne peut gérer aucun événement sur les éléments qui correspondent au sélecteur CSS.
Si vous écrasez cette propriété par défaut, tout fonctionne comme un charme, y compris les infobulles!
Cependant, vous ne devriez pas utiliser un sélecteur aussi général, car vous devrez probablement arrêter manuellement la propagation d'événements JavaScript comme vous le savez ( e.preventDefault () ).
la source
Dans mon cas, aucune des solutions ci-dessus n'a fonctionné. J'ai trouvé qu'il était plus facile de chevaucher le bouton désactivé en utilisant un élément absolu comme:
Démo
la source
Essayez cet exemple:
Les info-bulles doivent être initialisées avec
jQuery
: sélectionnez l'élément spécifié et appelez latooltip()
méthode dansJavaScript
:Ajouter
CSS
:Et votre html:
la source
Vous ne pouvez pas afficher l'info-bulle sur un bouton désactivé. En effet, les éléments désactivés ne déclenchent aucun événement, y compris l'info-bulle. Votre meilleur pari serait de simuler la désactivation du bouton (afin qu'il ressemble et se comporte comme s'il était désactivé), afin que vous puissiez ensuite déclencher l'info-bulle.
Par exemple. Javascript:
Au lieu de juste
$('[rel=tooltip]').tooltip();
HTML:
JSFiddle: http://jsfiddle.net/BA4zM/75/
la source
Vous pouvez simplement remplacer le style "pointer-events" de Bootstrap pour les boutons désactivés via CSS, par exemple
Mieux vaut encore être explicite et désactiver des boutons spécifiques par exemple
la source
C'est ce que moi et tekromancr avons imaginé.
Exemple d'élément:
note: les attributs de l'info-bulle peuvent être ajoutés à un div séparé, dans lequel l'id de ce div doit être utilisé lors de l'appel .tooltip ('destroy'); ou .tooltip ();
cela active l'info-bulle, placez-la dans n'importe quel javascript inclus dans le fichier html. il n'est peut-être pas nécessaire d'ajouter cette ligne, cependant. (si l'info-bulle montre sans cette ligne, ne vous souciez pas de l'inclure)
détruit l'info-bulle, voir ci-dessous pour l'utilisation.
empêche le bouton d'être cliquable. parce que l'attribut désactivé n'est pas utilisé, cela est nécessaire, sinon le bouton serait toujours cliquable même s'il «semble» comme s'il était désactivé.
En utilisant bootstrap, les classes btn et btn-disabled sont à votre disposition. Remplacez-les dans votre propre fichier .css. vous pouvez ajouter toutes les couleurs ou ce que vous voulez que le bouton ressemble lorsqu'il est désactivé. Assurez-vous de conserver le curseur: default; vous pouvez également modifier l'apparence de .btn.btn-success.
ajoutez le code ci-dessous à tout ce que javascript contrôle l'activation du bouton.
l'info-bulle ne devrait maintenant s'afficher que lorsque le bouton est désactivé.
si vous utilisez angularjs, j'ai également une solution pour cela, si vous le souhaitez.
la source
destroy
de l'info-bulle. (Voir ceci ) Cependant,$("#element_id").tooltip('disable')
et$("#element_id").tooltip('enable')
travaillez pour moi.Si cela aide quelqu'un, j'ai pu obtenir un bouton désactivé pour afficher une info-bulle en plaçant simplement une étendue à l'intérieur et en appliquant les info-bulles là-bas, angularjs autour d'elle ...
la source
Basé sur Bootstrap 4
Tous les détails ici: Bootstrap 4 doc
la source
Code de travail pour Bootstrap 3.3.6
Javascript:
CSS:
la source
Vous pouvez imiter l'effet en utilisant CSS3.
Supprimez simplement l'état désactivé du bouton et l'info-bulle n'apparaît plus. C'est parfait pour la validation car le code nécessite moins de logique.
J'ai écrit ce stylo pour illustrer.
Info-bulles désactivées CSS3
la source
Ajoutez simplement la classe désactivée au bouton au lieu de l'attribut désactivé pour la rendre visiblement désactivée à la place.
Remarque: ce bouton ne semble être désactivé, mais il déclenche toujours des événements, et vous devez juste en tenir compte.
la source
pointer-events: auto;
ne fonctionne pas sur un<input type="text" />
.J'ai adopté une approche différente. Je ne désactive pas le champ de saisie, mais le fais agir comme désactivé via css et javascript.
Comme le champ de saisie n'est pas désactivé, l'info-bulle s'affiche correctement. C'était dans mon cas bien plus simple que d'ajouter un wrapper au cas où le champ de saisie serait désactivé.
la source
Pour Bootstrap 3
HTML
CSS
JS
la source
J'ai finalement résolu ce problème, au moins avec Safari, en mettant "pointer-events: auto" avant "disabled". L'ordre inverse n'a pas fonctionné.
la source