Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12972|Răspunde: 0

[Jquery] jquery suprascrie fereastra de mesaje de alertă/confirmare în stil bootstrap

[Copiază linkul]
Postat pe 05.11.2015 16:30:50 | | | |
Cred că mulți oameni s-au săturat de apariția alertelor și confirmărilor și au lucrat recent la un proiect folosind bootstrap, iar apropo, au încapsulat o casetă de mesaje în stil bootstrap.

Este foarte simplu de implementat, bootstrap vine cu o cutie modală modală, care arată destul de bine :) doar încapsulează-l și folosește-l.

Fără cod, fără adevăr, mai puține vorbe și mai mult să faci, și să codificăm.


Proiectul este Asp.net arhitectură MVC pentru apelări globale ușoare, adaug direct următorul HTML pe pagina de layout global:

  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 -->
Cod de copiere


Nu prea am de spus, totul este stiluri modale bootstrap, prietenii care nu sunt familiarizați cu asta pot verifica bootstrap css, brackets [....] Conținutul va fi în cele din urmă înlocuit cu afișarea parametrilor pe care am trecut-o.

Pachetul js arată astfel:
  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. });
Cod de copiere
  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.   });
Cod de copiere

Randari:

Există și unele detalii care trebuie îmbunătățite, cum ar fi blockUI etc., dacă este târziu, mergi mai întâi la culcare.

Înlocuiește-l când ai timp.


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





Precedent:Utilizarea onclick și href în tag-ul A din HTML
Următor:Întrebări .NET C# despre valorile de preluare a sarcinilor utile în fundal
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com