亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

自編jQuery插件實現模擬alert和confirm

2019-11-20 14:13:15
字體:
來源:轉載
供稿:網友

啥也不說,先上圖,有圖有真相 :)

現在絕大多數網站都不用自帶的alert和confirm了,因為界面太生硬了。因此這個插件就這樣產生了...

來看插件的實現代碼吧:

(function () {  $.MsgBox = {    Alert: function (title, msg) {      GenerateHtml("alert", title, msg);      btnOk(); //alert只是彈出消息,因此沒必要用到回調函數callback      btnNo();    },    Confirm: function (title, msg, callback) {      GenerateHtml("confirm", title, msg);      btnOk(callback);      btnNo();    }  }  //生成Html  var GenerateHtml = function (type, title, msg) {    var _html = "";    _html += '<div id="mb_box"></div><div id="mb_con"><span id="mb_tit">' + title + '</span>';    _html += '<a id="mb_ico">x</a><div id="mb_msg">' + msg + '</div><div id="mb_btnbox">';    if (type == "alert") {      _html += '<input id="mb_btn_ok" type="button" value="確定" />';    }    if (type == "confirm") {      _html += '<input id="mb_btn_ok" type="button" value="確定" />';      _html += '<input id="mb_btn_no" type="button" value="取消" />';    }    _html += '</div></div>';    //必須先將_html添加到body,再設置Css樣式    $("body").append(_html); GenerateCss();  }  //生成Css  var GenerateCss = function () {    $("#mb_box").css({ width: '100%', height: '100%', zIndex: '99999', position: 'fixed',      filter: 'Alpha(opacity=60)', backgroundColor: 'black', top: '0', left: '0', opacity: '0.6'    });    $("#mb_con").css({ zIndex: '999999', width: '400px', position: 'fixed',      backgroundColor: 'White', borderRadius: '15px'    });    $("#mb_tit").css({ display: 'block', fontSize: '14px', color: '#444', padding: '10px 15px',      backgroundColor: '#DDD', borderRadius: '15px 15px 0 0',      borderBottom: '3px solid #009BFE', fontWeight: 'bold'    });    $("#mb_msg").css({ padding: '20px', lineHeight: '20px',      borderBottom: '1px dashed #DDD', fontSize: '13px'    });    $("#mb_ico").css({ display: 'block', position: 'absolute', right: '10px', top: '9px',      border: '1px solid Gray', width: '18px', height: '18px', textAlign: 'center',      lineHeight: '16px', cursor: 'pointer', borderRadius: '12px', fontFamily: '微軟雅黑'    });    $("#mb_btnbox").css({ margin: '15px 0 10px 0', textAlign: 'center' });    $("#mb_btn_ok,#mb_btn_no").css({ width: '85px', height: '30px', color: 'white', border: 'none' });    $("#mb_btn_ok").css({ backgroundColor: '#168bbb' });    $("#mb_btn_no").css({ backgroundColor: 'gray', marginLeft: '20px' });    //右上角關閉按鈕hover樣式    $("#mb_ico").hover(function () {      $(this).css({ backgroundColor: 'Red', color: 'White' });    }, function () {      $(this).css({ backgroundColor: '#DDD', color: 'black' });    });    var _widht = document.documentElement.clientWidth; //屏幕寬    var _height = document.documentElement.clientHeight; //屏幕高    var boxWidth = $("#mb_con").width();    var boxHeight = $("#mb_con").height();    //讓提示框居中    $("#mb_con").css({ top: (_height - boxHeight) / 2 + "px", left: (_widht - boxWidth) / 2 + "px" });  }  //確定按鈕事件  var btnOk = function (callback) {    $("#mb_btn_ok").click(function () {      $("#mb_box,#mb_con").remove();      if (typeof (callback) == 'function') {        callback();      }    });  }  //取消按鈕事件  var btnNo = function () {    $("#mb_btn_no,#mb_ico").click(function () {      $("#mb_box,#mb_con").remove();    });  }})();

Html代碼結構如下,js里面拼接的不直觀,給出如下:

<div id="mb_box"></div><div id="mb_con">    <span id="mb_tit">title</span><a id="mb_ico">x</a>    <div id="mb_msg">msg</div>    <div id="mb_btnbox">      <input id="mb_btn_ok" type="button" value="確定" />      <input id="mb_btn_no" type="button" value="取消" />    </div></div>

  mb_box為半透明遮罩層,將整個頁面遮住,禁止操作;mb_con為提示框。之所以沒把mb_con放在mb_box里面,是因為如果放里面的話,對mb_box設置的透明度會影響到mb_con,使mb_con也會變成透明的。之前也試過background-color:rgba(),可惜ie8及以下版本不支持。所以還是把mb_con拿到外面來了,通過設置z-index使其mb_box的上面。

  為了使插件使用方便,特意的沒有用到圖片,全是通過css來控制界面效果,使用時,引用一個js文件就可以了。css樣式在js中寫死了,這點可能不太靈活,但使用卻很方便如果你對界面樣式不滿意或者與你網站的色彩風格不一致,那只能自行修改了。

  由于彈出層(div)無法做到像原始的alert和confirm那樣做到頁面阻塞效果,因此只能通過 回調函數 來進行模擬。也因為這個原因,后臺數據操作只能通過回調函數配合ajax來完成的。

Demo如下:

<html xmlns="http://www.w3.org/1999/xhtml"><head>  <title>模擬alert和confirm提示框</title></head><body>  <input id="add" type="button" value="添加" />  <input id="delete" type="button" value="刪除" />  <input id="update" type="button" value="修改" />  <script src="../js/jquery-1.4.1.min.js" type="text/javascript"></script>  <script src="../js/jquery.similar.msgbox.js" type="text/javascript"></script>  <script type="text/javascript">    $("#add").bind("click", function () {      $.MsgBox.Alert("消息", "哈哈,添加成功!");    });    //回調函數可以直接寫方法function(){}    $("#delete").bind("click", function () {      $.MsgBox.Confirm("溫馨提示", "執行刪除后將無法恢復,確定繼續嗎?溫馨提示", function () { alert("你居然真的刪除了..."); });    });    function test() {      alert("你點擊了確定,進行了修改");    }    //也可以傳方法名 test    $("#update").bind("click", function () {      $.MsgBox.Confirm("溫馨提示", "確定要進行修改嗎?", test);    });    //當然你也可以不給回調函數,點擊確定后什么也不做,只是關閉彈出層     //$("#update").bind("click", function () { $.MsgBox.Confirm("溫馨提示", "確定要進行修改嗎?"); });  </script></body></html>

代碼量并不多,如有什么疑問可以留言 :)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av有码在线| 91久久中文字幕| 日韩大片在线观看视频| 日本亚洲欧洲色α| 亚洲japanese制服美女| 亚洲三级黄色在线观看| 日韩免费在线观看视频| 91日本在线视频| 色中色综合影院手机版在线观看| 国产精品观看在线亚洲人成网| 亚洲午夜av电影| 欧美伊久线香蕉线新在线| 91黑丝在线观看| 欧美小视频在线| 亚洲女人被黑人巨大进入al| 欧美另类极品videosbestfree| 日韩专区中文字幕| 中文字幕视频一区二区在线有码| 色播久久人人爽人人爽人人片视av| 午夜精品www| 亚洲高清福利视频| 精品福利樱桃av导航| 亚洲精品www久久久久久广东| 欧美老女人www| 国产91久久婷婷一区二区| 色黄久久久久久| www日韩中文字幕在线看| 国产精品福利无圣光在线一区| 成人免费在线网址| 成人久久一区二区| 久久久人成影片一区二区三区| 美女国内精品自产拍在线播放| 亚洲人精品午夜在线观看| 欧美日韩在线看| 精品亚洲一区二区三区四区五区| 日本久久亚洲电影| 欧美日韩亚洲精品内裤| 欧美日韩福利在线观看| 91亚洲精品一区| 欧美激情乱人伦一区| 亚洲激情中文字幕| 在线日韩第一页| 欧美日韩免费观看中文| 国产精品网红直播| 欧美日韩免费观看中文| 欧美日韩亚洲精品一区二区三区| 久久亚洲影音av资源网| 国外成人在线直播| 欧美成人午夜激情视频| 国产精品久久久久久久一区探花| 秋霞av国产精品一区| 色妞色视频一区二区三区四区| 国产成人在线一区二区| 亚洲电影免费观看高清完整版在线观看| 欧美亚洲视频在线看网址| 欧美性视频网站| 精品福利在线观看| 国产亚洲美女精品久久久| 国产精品亚洲自拍| 色偷偷av一区二区三区| 91久久精品国产91久久性色| 日本中文字幕不卡免费| 久久久久久69| 日本欧美国产在线| 日韩精品在线观| 国产精品国产三级国产aⅴ浪潮| 国产综合色香蕉精品| 亚洲成人激情在线观看| 国产综合香蕉五月婷在线| 这里只有视频精品| 国产精品久久久久久久美男| 日韩成人在线视频观看| 色综合伊人色综合网站| 国产精选久久久久久| 日韩av一卡二卡| 日韩在线观看免费全集电视剧网站| 欧美成人午夜免费视在线看片| 欧美福利视频在线| 爱福利视频一区| 亚洲天堂av在线播放| 日韩第一页在线| 精品国产视频在线| 欧美在线免费视频| 亚洲欧美日韩中文在线制服| xvideos成人免费中文版| 欧美日韩在线看| 91高清视频免费| 成人激情综合网| 亚洲国产精品va在看黑人| 久久久国产精品一区| 亚洲人成在线观看| 一区二区三区视频免费在线观看| 色综合视频网站| 日韩成人在线电影网| 国产不卡精品视男人的天堂| 欧美精品电影在线| 日韩精品极品视频免费观看| 欧美乱妇高清无乱码| 黄色一区二区在线| 亚洲精品自在久久| 奇米一区二区三区四区久久| 成人在线播放av| 久久久精品视频在线观看| 国产精品成人免费视频| 色偷偷亚洲男人天堂| 欧美激情欧美激情| 韩国三级日本三级少妇99| 日韩av免费观影| 青草青草久热精品视频在线观看| 久久精品一偷一偷国产| 欧美午夜片欧美片在线观看| 日韩中文字幕国产精品| 亚洲欧美日韩国产成人| 国内精品久久久久| 国模视频一区二区| 亚洲精品视频二区| 久久久久久久影院| 久热精品视频在线免费观看| 91久久久久久久| 色偷偷av亚洲男人的天堂| 亚洲无线码在线一区观看| 欧美极品少妇全裸体| 久久免费少妇高潮久久精品99| 欧美午夜激情视频| 色小说视频一区| 51久久精品夜色国产麻豆| 亚洲视频日韩精品| 亚洲一区二区三区在线视频| 中文字幕日韩免费视频| 欧美性极品少妇精品网站| 91丝袜美腿美女视频网站| www.日本久久久久com.| 亚洲精品中文字幕女同| 久久久久久欧美| 国产mv免费观看入口亚洲| 91精品国产综合久久男男| 亚洲欧美在线磁力| 亚洲视频在线观看免费| 久久久久久久久91| 亚洲日韩第一页| 精品色蜜蜜精品视频在线观看| 国产成人综合一区二区三区| 中文字幕亚洲欧美日韩在线不卡| 中文日韩在线观看| 国产欧美一区二区三区在线看| 国语自产精品视频在线看抢先版图片| 成人网中文字幕| 色偷偷亚洲男人天堂| 国产成人鲁鲁免费视频a| 91在线观看免费高清完整版在线观看| 国内精品美女av在线播放| 久久久精品免费视频| 亚洲人成网站在线播| 欧美激情在线有限公司| 久久久天堂国产精品女人| 在线观看精品自拍私拍| 精品国产乱码久久久久久天美| 亚洲电影中文字幕| 亚洲成人激情视频| 久久久久国产精品一区| 久久久中文字幕| 日韩中文字幕第一页| 日韩av在线最新| 久久久久久久爱|