Existe-t-il une solution jQuery Mobile de type Sencha Nice pour les dialogues d'alertes et de confirmation?
Ce plugin pour jQM stylisera la boîte de confirmation avec le style jQM
http://dev.jtsage.com/jQM-SimpleDialog/
EDIT: Ce plugin a maintenant été remplacé par SimpleDialog2 qui peut être trouvé ici:
Oui, le plugin est sympa. Cependant, si vous n'avez pas besoin de toutes les fonctionnalités, il est toujours beaucoup plus léger pour lancer vos propres dialogues simples. J'utilise ceci:
<div data-role="dialog" id="sure" data-title="Are you sure?">
<div data-role="content">
<h3 class="sure-1">???</h3>
<p class="sure-2">???</p>
<a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back">Yes</a>
<a href="#" data-role="button" data-theme="c" data-rel="back">No</a>
</div>
</div>
Et ça:
function areYouSure(text1, text2, button, callback) {
$("#sure .sure-1").text(text1);
$("#sure .sure-2").text(text2);
$("#sure .sure-do").text(button).on("click.sure", function() {
callback();
$(this).off("click.sure");
});
$.mobile.changePage("#sure");
}
Vous pouvez les utiliser partout où vous avez besoin de la boîte de dialogue de confirmation:
areYouSure("Are you sure?", "---description---", "Exit", function() {
// user has confirmed, do stuff
});
J'ai eu un problème similaire. Je voulais avoir une fonction facile à utiliser comme la fonction confirm()
standard.
Étant donné que les boîtes de dialogue sont obsolètes dans jquery mobile 1.4 (documentation) , j'ai décidé de créer mon propre violon:
function confirmDialog(text, callback) {
var popupDialogId = 'popupDialog';
$('<div data-role="popup" id="' + popupDialogId + '" data-confirmed="no" data-transition="pop" data-overlay-theme="b" data-theme="b" data-dismissible="false" style="max-width:500px;"> \
<div data-role="header" data-theme="a">\
<h1>Question</h1>\
</div>\
<div role="main" class="ui-content">\
<h3 class="ui-title">' + text + '</h3>\
<a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b optionConfirm" data-rel="back">Yes</a>\
<a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b optionCancel" data-rel="back" data-transition="flow">No</a>\
</div>\
</div>')
.appendTo($.mobile.pageContainer);
var popupDialogObj = $('#' + popupDialogId);
popupDialogObj.trigger('create');
popupDialogObj.popup({
afterclose: function (event, ui) {
popupDialogObj.find(".optionConfirm").first().off('click');
var isConfirmed = popupDialogObj.attr('data-confirmed') === 'yes' ? true : false;
$(event.target).remove();
if (isConfirmed && callback) {
callback();
}
}
});
popupDialogObj.popup('open');
popupDialogObj.find(".optionConfirm").first().on('click', function () {
popupDialogObj.attr('data-confirmed', 'yes');
});
}
J'ai remarqué un comportement étrange, lorsque la fenêtre de redirection/effacement a été effectuée sur le bouton "Oui". Il a commencé à fonctionner dans l'événement afterClose, c'est pourquoi c'est un peu compliqué.
Excellent code @ Peter, mais pour ne pas générer d'événements consécutifs, il pourrait être préférable d'utiliser unbind (), comme ceci:
function areYouSure(text1, text2, button, callback) {
$("#sure .sure-1").text(text1);
$("#sure .sure-2").text(text2);
$("#sure .sure-do").text(button).unbind("click.sure").on("click.sure", function() {
callback(false);
$(this).off("click.sure");
});
$.mobile.changePage("#sure");
}
Merci!
Ce plugin craftpip/jquery-confirm
a été initialement conçu pour les mobiles, est basé sur le framework bootstrap3. Prend en charge les alertes, les confirmations, les modaux, les boîtes de dialogue et de nombreuses options.
Simple à utiliser.
$.alert({
title: 'title here',
content: 'content here',
confirm: function(){
//on confirm
},
cancel: function(){
// on cancel
}
})
Prend en charge le chargement ajax, les animations CSS3, Responsive, etc.
[EDIT] Une documentation détaillée peut être trouvée ici
Liste des fonctionnalités:
Je développe activement le plugin, veuillez suggérer des améliorations et des fonctionnalités.
Je n'ai rien vu avec des alertes car je pense qu'il utilise l'apparence native pour eux. Vous devriez pouvoir les personnaliser via un autre plugin jQuery et/ou CSS.
Voici un Exemple jQuery
MISE À JOUR:
Eh bien, le lien est maintenant un 404 et jQM 1.2 est sorti et propose des popups: