Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12972|Répondre: 0

[Jquery] jquery supprime la fenêtre de message alerte/confirmation de type bootstrap

[Copié le lien]
Publié sur 05/11/2015 16:30:50 | | | |
Je crois que beaucoup de gens en ont assez de l’apparition d’alertes et de confirmations, et qu’ils ont récemment travaillé sur un projet avec Bootstrap, et d’ailleurs, ils ont encapsulé une boîte de messages de type Bootstrap.

C’est très simple à implémenter, Bootstrap lui-même vient avec une boîte modale modale, qui a l’air plutôt bien :) il suffit de l’encapsuler et de l’utiliser.

Pas de code, pas de vérité, moins de paroles et plus de faire, et codez.


Le projet est Asp.net architecture MVC pour faciliter l’appel global, j’ajoute directement le HTML suivant à la page de mise en page globale :

  1. <!-- system modal start -->
  2.     <div id="ycf-alert" class="modal">
  3.       <div class="modal-dialog modal-sm">
  4.         <div class="modal-content">
  5.           <div class="modal-header">
  6.             <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
  7.             <h5 class="modal-title"><i class="fa fa-exclamation-circle"></i> [Title]</h5>
  8.           </div>
  9.           <div class="modal-body small">
  10.             <p>[Message]</p>
  11.           </div>
  12.           <div class="modal-footer" >
  13.             <button type="button" class="btn btn-primary ok" data-dismiss="modal">[BtnOk]</button>
  14.             <button type="button" class="btn btn-default cancel" data-dismiss="modal">[BtnCancel]</button>
  15.           </div>
  16.         </div>
  17.       </div>
  18.     </div>
  19.   <!-- system modal end -->
Code de copie


Pas grand-chose à dire, c’est tout des styles modaux bootstrap, des amis qui ne connaissent pas peuvent vérifier bootstrap css, crochets [....] Le contenu sera finalement remplacé par l’affichage des paramètres que nous avons adopté.

Le package js ressemble à ceci :
  1. $(function () {
  2.   window.Modal = function () {
  3.     var reg = new RegExp("\[([^\[\]]*?)\]", 'igm');
  4.     var alr = $("#ycf-alert");
  5.     var ahtml = alr.html();

  6.     //关闭时恢复 modal html 原样,供下次调用时 replace 用
  7.     //var _init = function () {
  8.     //        alr.on("hidden.bs.modal", function (e) {
  9.     //                $(this).html(ahtml);
  10.     //        });
  11.     //}();

  12.     /* html 复原不在 _init() 里面做了,重复调用时会有问题,直接在 _alert/_confirm 里面做 */


  13.     var _alert = function (options) {
  14.       alr.html(ahtml);        // 复原
  15.       alr.find('.ok').removeClass('btn-success').addClass('btn-primary');
  16.       alr.find('.cancel').hide();
  17.       _dialog(options);

  18.       return {
  19.         on: function (callback) {
  20.           if (callback && callback instanceof Function) {
  21.             alr.find('.ok').click(function () { callback(true) });
  22.           }
  23.         }
  24.       };
  25.     };

  26.     var _confirm = function (options) {
  27.       alr.html(ahtml); // 复原
  28.       alr.find('.ok').removeClass('btn-primary').addClass('btn-success');
  29.       alr.find('.cancel').show();
  30.       _dialog(options);

  31.       return {
  32.         on: function (callback) {
  33.           if (callback && callback instanceof Function) {
  34.             alr.find('.ok').click(function () { callback(true) });
  35.             alr.find('.cancel').click(function () { callback(false) });
  36.           }
  37.         }
  38.       };
  39.     };

  40.     var _dialog = function (options) {
  41.       var ops = {
  42.         msg: "提示内容",
  43.         title: "操作提示",
  44.         btnok: "确定",
  45.         btncl: "取消"
  46.       };

  47.       $.extend(ops, options);

  48.       console.log(alr);

  49.       var html = alr.html().replace(reg, function (node, key) {
  50.         return {
  51.           Title: ops.title,
  52.           Message: ops.msg,
  53.           BtnOk: ops.btnok,
  54.           BtnCancel: ops.btncl
  55.         }[key];
  56.       });
  57.       
  58.       alr.html(html);
  59.       alr.modal({
  60.         width: 500,
  61.         backdrop: 'static'
  62.       });
  63.     }

  64.     return {
  65.       alert: _alert,
  66.       confirm: _confirm
  67.     }

  68.   }();
  69. });
Code de copie
  1. // 四个选项都是可选参数
  2. Modal.alert(
  3.   {
  4.     msg: '内容',
  5.     title: '标题',
  6.     btnok: '确定',
  7.     btncl:'取消'
  8.   });

  9. // 如需增加回调函数,后面直接加 .on( function(e){} );
  10. // 点击“确定” e: true
  11. // 点击“取消” e: false
  12. Modal.confirm(
  13.   {
  14.     msg: "是否删除角色?"
  15.   })
  16.   .on( function (e) {
  17.     alert("返回结果:" + e);
  18.   });
Code de copie

Rendus:

Il y a aussi des détails à améliorer, comme blockUI, etc., s’il est tard, il faut d’abord aller se coucher.

Remplace-le quand tu auras le temps.


Lien original : http://www.tuicool.com/articles/mMNrIr





Précédent:Utilisation d’onclick et href dans le tag A en HTML
Prochain:Questions .NET C# concernant la prise de valeurs de charge utile en arrière-plan
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com