jQuery UI Dialog Icônes de Bouton
Est-il possible d'ajouter des icônes pour les boutons sur un jQuery UI Dialog? J'ai essayé de le faire de cette façon:
$("#DeleteDialog").dialog({
resizable: false,
height:150,
modal: true,
buttons: {
'Delete': function() {
/* Do stuff */
$(this).dialog('close');
},
Cancel: function() {
$(this).dialog('close');
}
},
open: function() {
$('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('ui-icon-cancel');
$('.ui-dialog-buttonpane').find('button:contains("Delete")').addClass('ui-icon-trash');
}
});
Les sélecteurs dans la fonction open semble fonctionner correctement. Si j'ai ajouter la ligne suivante à "ouvrir":
$('.ui-dialog-buttonpane').find('button:contains("Delete")').css('color', 'red');
puis-je faire obtenir un bouton Supprimer avec le texte en rouge. Ce n'est pas mauvais, mais j'aimerais vraiment que la petite poubelle de sprite sur le bouton Supprimer en tant que bien.
Edit:
J'ai fait une paire de modifications acceptées réponse:
var btnDelete = $('.ui-dialog-buttonpane').find('button:contains("Delete")');
btnDelete.prepend('<span style="float:left; margin-top: 5px;" class="ui-icon ui-icon-trash"></span>');
btnDelete.width(btnDelete.width() + 25);
De l'ajout de certains marge supérieure pousse l'icône vers le bas, de sorte qu'il ressemble il est centré verticalement. L'ajout de 25 px pour le bouton de largeur de garde le bouton de texte à partir d'habillage sur une deuxième ligne.
- Ce fut finalement fixé il y a 3 mois à bugs.jqueryui.com/ticket/6830
Vous devez vous connecter pour publier un commentaire.
Essayer cette ligne pour ajouter l'icône de la corbeille pour le supprimer bouton. Le sprite doit être dans un élément séparé.
Afin de prévenir l'icône qui apparaît sur le haut de la touche:
j'ai' essayé, et ça marche 🙂
'button:contains("Cancel")'
, l'utilisation de la touche`": first-child" et de la chaîne avec.next()
pour le bouton suivantPris en charge nativement depuis jQuery UI 1.10
À partir de jQuery UI version 1.10.0, il est possible à proprement spécifier les icônes de bouton, sans avoir recours à
open
des gestionnaires d'événements. La syntaxe est la suivante:Il est également possible de spécifier un
secondary
icône.Le voir en action.
open
gestionnaire d'événement. Mais peut-être qu'il est possible de cibler le bouton de fonction sur ses ancêtres dans les DOM ou à la cible la.ui-button-text
élément à l'intérieur (que vous pouvez le faire grâce à la classe définie par l'icône) à la place? Dépend de la situation précise.vous pouvez également ajouter identité ou tout autre attribut de bouton, comme ceci:
Cette version fonctionne sans avoir à se soucier du texte dans les boutons
Voici ce que j'utilise. Attribuer un ID pour le bouton d'intérêt au cours de la première boîte de dialogue de définition:
Ensuite, vous pouvez modifier le texte/icône comme ceci:
Juste une mise à jour depuis que je suis tombé sur la nécessité de faire moi-même.
J'ai plusieurs boîtes de dialogue que les deux ont le même bouton fermer, donc il est utile de parler de la façon dont on pourrait placer des icônes directement sur la boîte de dialogue, vous êtes à la recherche d'affecter, juste au cas où vous auriez besoin d'un icône sur un bouton dans une autre boîte de dialogue qui contient le même texte.
Également la solution retenue est pas un couple de déjà défini des classes CSS qui permettrait de résoudre la question de position.
Le code suivant doit accomplir exactement ce qui était souhaité dans la question d'origine, avec un peu plus de précision. Si vous avez voulu appliquer la même icône de la corbeille pour toutes les boîtes de dialogue avec un bouton de Suppression, la modification de l' $('#DeleteDialog').parent() sélecteur $('.ui-dialog-buttonpane') permettrait d'atteindre cet objectif:
Ou si vous ne voulez pas affecter les autres boîtes de dialogue,
attribuer hauteur ".l'interface utilisateur boîte de dialogue .interface utilisateur-bouton", comme suit:
J'ai couru dans le même numéro. Il semble jquery enregistre le texte dans un attribut appelé "texte" dans le bouton lui-même, et non en tant que texte à l'intérieur du bouton.
Je l'ai résolu comme ceci:
Quelle est la classe de base de l'approche?
Dans votre
_layout.cshtml
fichier mettre quelque chose comme ce qui suit:Ensuite, dans le fichier dans lequel vous créez le dialogue, faire quelque chose comme ceci:
Alors vous n'aurez jamais à s'appuyer sur la recherche de texte, et il demande un minimum de code dans votre boîte de dialogue. J'utilise ce tout au long de mes applications pour appliquer jquery UI style/icônes de boutons juste en leur donnant une classe.
Selon Dialogue > boutons d'option de la documentation que vous pouvez passer un objet ou un tableau d'options; ce dernier vous permet de personnaliser les boutons:
JS:
CSS:
HTML: