jquery控件-实现自定义样式的弹出窗口和确认框(转)

[javascript] view plain copy

  1. (function () {
  2. $.MsgBox = {
  3. Alert: function (title, msg) {
  4. GenerateHtml("alert", title, msg);
  5. btnOk();  //alert只是弹出消息,因此没必要用到回调函数callback
  6. btnNo();
  7. },
  8. Confirm: function (title, msg, callback) {
  9. GenerateHtml("confirm", title, msg);
  10. btnOk(callback);
  11. btnNo();
  12. }
  13. }
  14. //生成Html
  15. var GenerateHtml = function (type, title, msg) {
  16. var _html = "";
  17. _html += ‘<div id="mb_box"></div><div id="mb_con"><span id="mb_tit">‘ + title + ‘</span>‘;
  18. _html += ‘<a id="mb_ico">x</a><div id="mb_msg">‘ + msg + ‘</div><div id="mb_btnbox">‘;
  19. if (type == "alert") {
  20. _html += ‘<input id="mb_btn_ok" type="button" value="确定" />‘;
  21. }
  22. if (type == "confirm") {
  23. _html += ‘<input id="mb_btn_ok" type="button" value="确定" />‘;
  24. _html += ‘<input id="mb_btn_no" type="button" value="取消" />‘;
  25. }
  26. _html += ‘</div></div>‘;
  27. //必须先将_html添加到body,再设置Css样式
  28. $("body").append(_html);
  29. //生成Css
  30. GenerateCss();
  31. }
  32. //生成Css
  33. var GenerateCss = function () {
  34. $("#mb_box").css({ width: ‘100%‘, height: ‘100%‘, zIndex: ‘99999‘, position: ‘fixed‘,
  35. filter: ‘Alpha(opacity=60)‘, backgroundColor: ‘black‘, top: ‘0‘, left: ‘0‘, opacity: ‘0.6‘
  36. });
  37. $("#mb_con").css({ zIndex: ‘999999‘, width: ‘400px‘, position: ‘fixed‘,
  38. backgroundColor: ‘White‘, borderRadius: ‘15px‘
  39. });
  40. $("#mb_tit").css({ display: ‘block‘, fontSize: ‘14px‘, color: ‘#444‘, padding: ‘10px 15px‘,
  41. backgroundColor: ‘#DDD‘, borderRadius: ‘15px 15px 0 0‘,
  42. borderBottom: ‘3px solid #009BFE‘, fontWeight: ‘bold‘
  43. });
  44. $("#mb_msg").css({ padding: ‘20px‘, lineHeight: ‘20px‘,
  45. borderBottom: ‘1px dashed #DDD‘, fontSize: ‘13px‘
  46. });
  47. $("#mb_ico").css({ display: ‘block‘, position: ‘absolute‘, right: ‘10px‘, top: ‘9px‘,
  48. border: ‘1px solid Gray‘, width: ‘18px‘, height: ‘18px‘, textAlign: ‘center‘,
  49. lineHeight: ‘16px‘, cursor: ‘pointer‘, borderRadius: ‘12px‘, fontFamily: ‘微软雅黑‘
  50. });
  51. $("#mb_btnbox").css({ margin: ‘15px 0 10px 0‘, textAlign: ‘center‘ });
  52. $("#mb_btn_ok,#mb_btn_no").css({ width: ‘85px‘, height: ‘30px‘, color: ‘white‘, border: ‘none‘ });
  53. $("#mb_btn_ok").css({ backgroundColor: ‘#168bbb‘ });
  54. $("#mb_btn_no").css({ backgroundColor: ‘gray‘, marginLeft: ‘20px‘ });
  55. //右上角关闭按钮hover样式
  56. $("#mb_ico").hover(function () {
  57. $(this).css({ backgroundColor: ‘Red‘, color: ‘White‘ });
  58. }, function () {
  59. $(this).css({ backgroundColor: ‘#DDD‘, color: ‘black‘ });
  60. });
  61. var _widht = document.documentElement.clientWidth;  //屏幕宽
  62. var _height = document.documentElement.clientHeight; //屏幕高
  63. var boxWidth = $("#mb_con").width();
  64. var boxHeight = $("#mb_con").height();
  65. //让提示框居中
  66. $("#mb_con").css({ top: (_height - boxHeight) / 2 + "px", left: (_widht - boxWidth) / 2 + "px" });
  67. }
  68. //确定按钮事件
  69. var btnOk = function (callback) {
  70. $("#mb_btn_ok").click(function () {
  71. $("#mb_box,#mb_con").remove();
  72. if (typeof (callback) == ‘function‘) {
  73. callback();
  74. }
  75. });
  76. }
  77. //取消按钮事件
  78. var btnNo = function () {
  79. $("#mb_btn_no,#mb_ico").click(function () {
  80. $("#mb_box,#mb_con").remove();
  81. });
  82. }
  83. })();

Html代码结构如下,js里面拼接的不直观,给出如下:

[javascript] view plain copy

  1. <div id="mb_box"></div>
  2. <div id="mb_con">
  3. <span id="mb_tit">title</span><a id="mb_ico">x</a>
  4. <div id="mb_msg">msg</div>
  5. <div id="mb_btnbox">
  6. <input id="mb_btn_ok" type="button" value="确定" />
  7. <input id="mb_btn_no" type="button" value="取消" />
  8. </div>
  9. </div>

demo:

[javascript] view plain copy

    1. <html xmlns="http://www.w3.org/1999/xhtml">
    2. <head>
    3. <title>模拟alert和confirm提示框</title>
    4. </head>
    5. <body>
    6. <input id="add" type="button" value="添加" />
    7. <input id="delete" type="button" value="删除" />
    8. <input id="update" type="button" value="修改" />
    9. <script src="../js/jquery-1.4.1.min.js" type="text/javascript"></script>
    10. <script src="../js/jquery.similar.msgbox.js" type="text/javascript"></script>
    11. <script type="text/javascript">
    12. $("#add").bind("click", function () {
    13. $.MsgBox.Alert("消息", "哈哈,添加成功!");
    14. });
    15. //回调函数可以直接写方法function(){}
    16. $("#delete").bind("click", function () {
    17. $.MsgBox.Confirm("温馨提示", "执行删除后将无法恢复,确定继续吗?温馨提示", function () { alert("你居然真的删除了..."); });
    18. });
    19. function test() {
    20. alert("你点击了确定,进行了修改");
    21. }
    22. //也可以传方法名 test
    23. $("#update").bind("click", function () {
    24. $.MsgBox.Confirm("温馨提示", "确定要进行修改吗?", test);
    25. });
    26. //当然你也可以不给回调函数,点击确定后什么也不做,只是关闭弹出层
    27.      //$("#update").bind("click", function () { $.MsgBox.Confirm("温馨提示", "确定要进行修改吗?"); });
    28. </script>
    29. </body>
    30. </html>
时间: 2024-09-30 18:44:47

jquery控件-实现自定义样式的弹出窗口和确认框(转)的相关文章

Web开发技巧:使用自定义数据属性创建弹出窗口

在开发web应用时,有时会用JavaScript获取文档之外的信息,某些情况下,我们需要用一些技巧来处理这些额外信息以保证Web应用能够正常运行.一般而言,技巧无外乎是将额外的信息塞入事件处理程序或滥用rel属性或class属性以方便注入行为.感谢HTML规范引入了自定义数据属性,让不堪回首的往日一去不返. 所有的自定义数据属性都以data一前缀开头,HTML文档的验证器会在验证时忽略它.开发人员可以在任意元素中加入自定义数据属性,属性值可以是照片的元数据.经纬度坐标或者弹出窗口的尺寸.最棒的是

js手机端浮层控件,并有多种弹出小提示,兼容pc端浏览器

js dialog组件,包含alert和confirm的实现 本组件所有的资源均在github上可以查看源代码 GitHub 本dialog的组件的例子请在这里查看 demo dialog js dialog弹窗 用法 这是内容 <input type="button" id="btn_dialog" value="打开浮层"/> <div id="dialog-content" style="di

WinFrom - DataGridView控件右键选中记录并弹出菜单

dataGridView右键菜单并选中该行 程序代码: private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == MouseButtons.Right) { if (e.RowIndex >= 0) { dataGridView1.ClearSelection(); dataGridView1.Rows[e.RowIndex].Select

CSS3/jQuery自定义弹出窗口

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>index.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv

读《深入理解Windows Phone 8.1 UI控件编程》1.4.3 框架的应用示例:自定义弹出窗口有感

前些天买了园子里林政老师的两本 WP8.1 的书籍.毕竟想要学得深入的话,还是得弄本书跟着前辈走的. 今天读到 1.4.3 节——框架的应用示例:自定义弹出窗口这一小节.总的来说,就是弄一个像 MessageDialog 的,但是又要具有能定义 Dialog 内的按钮.文本等等的功能(例如颜色.字体大小这些).(先不说 ContentDialog ,即内容对话框能大部分做到) 原理是使用了一个 Popup 控件作为弹出窗口的容器,将 Popup 的 Child 属性赋值为弹出窗口的实例.在书中,

android 设置View控件的全局样式和风格

android开发部中,不可避免的要设定某一类按钮的按压,点击,聚焦等状态,通常对于这一类问题而言,最原始的方式就是在布局文件中亲自设定,然而对于一个比较大型的项目而言,这种方式造成的可维护性不是很好,因此要尽量做到代码重用. android项目中通常有3个设置样式的资源文件夹 values values-11 values-14 这三个对应不同平台的sdk版本的样式,对于android开发中兼容问题而言,要做到"让最新的api运行在最新的android sdk中",这是非常好的一种行

WPF 重写微调自带的样式,ListView、DataGrid、TreeView等所有控件的默认样式

原文:WPF 重写微调自带的样式,ListView.DataGrid.TreeView等所有控件的默认样式 不知道各位在开发中有没有遇到这样的窘迫,开发一个UI,设计给出的效果图和自带的样式的区别很大,然后有的样式通过属性是修改不了的,比如TreeView的子项TreeViewItem,想完全透明背景色就做不到,只有重写Template,然而重写了模板发现很多默认的功能失效了,等等一些列问题:又比如需要重新DataGrid,的DataGridRowHeader模板,又不知这个模板哪些属性必须要给

[转]设置控件全局显示样式appearance proxy

转自:huifeidexin_1的专栏 appearance是apple在iOS5.0上加的一个协议,它让程序员可以很轻松地改变某控件的全局样式(背景) @selector(appearance) 支持UIAppearance协议的类可以访问appearance selector ,它为receiver返回appearance proxy,我么可以给proxy发一些消息,诸如setTintColor:等 但是它并不是支持所有的UI类.下面列出它支持的类 1.UIActivitiIndicator

jQuery控件简易日历表格

jQuery控件简易日历表格代码,jquery表格,jquery插件 ,jquery,日期,时间,日历表格,表格代码,jQuery控件简易日历表格代码是一款较为简单的显示日历的代码,兼容firefox,chrome,ie. 下载地址:http://www.huiyi8.com/sc/6362.html(转载请注明此处)