zoukankan      html  css  js  c++  java
  • 多功能jQuery对话框插件 jBox 2.3 正式版

    jBoxv2.3 beta
    [点击下载

    技术交流QQ群:172543951
    • [2011-11-11] jBox v2.3 正式版
    • - [调整&修复] IE6下有iframe或页面有active、applet控件的情况下自动选择用iframe来遮罩。
    • - [修复] IE6下拖动窗口到右边时边框不可见的样式错误(依然还有20px,但影响不大)。
    • - [修复] IE6下prompt相关方法与messager方法的图标最小高度不正确的样式修正。
    • - [修复] 修复浏览器改变大小时遮罩层不完全的bug。
    • [2011-11-08] jBox v2.3 beta 版本更新
    • - [新增] tip方法增加了 opacity 选项,它决定是否显示隔离层。
    • - [新增] 增加了 showScrolling 选项,在显示jBox窗口时可以隐藏浏览器的滚动条。
    • - [新增] 多个窗口共存时,点击某个窗口标题时,窗口自动处于最顶层。
    • - [调整] id 选项默认改为null,当为null时会自动生成随机id,一个id只会显示一个jBox。
    • - [调整] loaded 选项增加了个参数h,参数h表示窗口内容的jQuery对象,方便用户在窗口加载后对内容进行初始化处理。
    • - [调整] 把全局设置放到独立的js文件,统一放在目录 i18n,目前只有jquery.jBox-zh-CN.js。
    • - [调整] 按空格键可直接执行默认按钮提交的事件(为保留此功能,按钮为焦点时不是很好看,但用户体验应该优先考虑)。
    • - [修复] 修复在IE下多窗口状态切换时显示不了的Bug。
    • [2011-08-30] jBox v2.2 beta 版本更新
    • - [新增] 新增另一套常用皮肤Skin2。
    • - [调整] 此版本已把全局设置 showIcon改为true,同时还可以设置自定义标题图标。详情请看最下面的配置说明。
    • - [修复] 修复浏览器改变大小时窗口可能消失的bug。
    • [2011-08-28] jBox v2.1 beta 版本更新
    • - [新增] 美化界面皮肤,新增常用皮肤。每个皮肤下都有三个loading图标和两款按钮可以选择,默认使用第一个。
    • - [新增] 加强 tip 方法的多个tip切换特效,还可以使用 loading 图标显示ajax交互提示。
    • - [调整] 按钮由 a 标签改回 button 标签,使其可以按回车或空格键提交默认按钮。
    • - [调整] 此版本已把全局设置 showIcon、dragClone改为false,如果想启用请设置为true。另外,增加了一个 ajaxData 设置,方便提交ajax数据。详情请看最下面的配置说明。
    • [2011-07-24] jBox v2.0 beta 版本更新
    • - [新增] 增加界面皮肤,可以制作自己喜欢的皮肤。
    • - [新增] 增加窗口可以拖动的功能。
    • - [新增] 增加 tip、messager 方法以方便用户交互提示。
    • - [调整] 扩大选项可设置范围,更具个性化。
    • - [调整] 优化与调整整体界面样式,扩大样式可设置范围。
    • - [调整] 优化与调整 open、prompt、alert、info、warning、success、error、confirm 方法以方便界面操作。
    • - [修复] 修复在各个主流浏览器下的多个小BUG。
    • [2009-11-30] jBox v1.0 初版本
    • 插件说明
    • - jBox 是一款基于 jQuery 的多功能对话框插件,能够实现网站的整体风格效果,给用户一个新的视觉享受。
    • 运行环境
    • - 兼容 IE6+、Firefox、Chrome、Safari、Opera 等主流浏览器。备注:IE不支持边框的圆角样式,不推荐大家使用蛋痛的IE浏览器。
    • 使用授权
    • - jBox 永久免费使用,但是必须保留相关的版权信息。如果有好的建议,请Email: kudychen@gmail.com,jBox的完善需要大家的好建议。
    • 使用方法:
    •    <script type="text/javascript" src="jBox/jquery-1.4.2.min.js"></script>   <script type="text/javascript" src="jBox/jquery.jBox-2.3.min.js"></script>   <script type="text/javascript" src="jBox/i18n/jquery.jBox-zh-CN.js"></script>    <link type="text/css" rel="stylesheet" href="jBox/Skins/皮肤文件夹/jbox.css"/>   // 或   <link type="text/css" rel="stylesheet" href="jBox/Skins2/皮肤文件夹/jbox.css"/>               
       
    请根据自己的喜好修改全局设置以减少方法时传递的参数。另外,jBox的皮肤是很容易制作的,最简单的就是只修改CSS样式里的颜色,在会PS的情况下更是可以制作多样化的皮肤。
    $.jBox()
    • 函数原型:
    • $.jBox(content, options);
    •     └ 或者 jBox(content, options);
    • 参数说明:
    • content (string,json)
    •    └ 可以是string或json。当是string时,需要加上前缀标识(html:、id:、get:、post:、iframe:),如果没有加标识,系统会自动加上html:,具体请看应用例子。当是json时,表示一个或多个状态,每个状态的默认值为 $.jBox.stateDefaults
    • options [可选] (json)
    •    └ 其它参数选项,默认值为 $.jBox.defaults

    • 备注:如果想手动关闭jBox(不包括下面的tip与messager,它们另有方法),请调用 $.jBox.close(token) 方法。

    示例(一):
     // 此例省略了前缀html:,前缀标识是不区分大小写的,也可以是HTML: var info = 'jQuery jBox<br /><br />版本:v2.0<br />日期:2011-7-24<br />'; info += '官网:<a target="_blank" href="http://kudystudio.com/jbox">http://kudystudio.com/jbox</a>'; $.jBox.info(info); 
    示例(二):
     // 显示id为id-html的div内部html,同时设置了bottomText $.jBox('id:id-html', { bottomText: '这是底部文字' }); 
    示例(三):
     // ajax get 页面ajax.html的内容并显示,例如要提交id=1,则地址应该为 ajax.html?id=1,post:前缀的使用与get:的一样 $.jBox("get:ajax.html"); 
    示例(四):
     // 用iframe显示http://www.baidu.com的内容,并设置了标题、宽与高、按钮 $.jBox("iframe:http://www.baidu.com", {     title: "百度一下",      800,     height: 350,     buttons: { '关闭': true } }); 
    示例(五):
     var content = {     state1: {         content: '状态一',         buttons: { '下一步': 1, '取消': 0 },         buttonsFocus: 0,         submit: function (v, h, f) {             if (v == 0) {                 return true; // close the window             }             else {                 $.jBox.nextState(); //go forward                 // 或 $.jBox.goToState('state2')             }             return false;         }     },     state2: {         content: '状态二,请关闭窗口哇:)',         buttons: { '上一步': 1, '取消': 0 },         buttonsFocus: 0,         submit: function (v, h, f) {             if (v == 0) {                 return true; // close the window             } else {                 $.jBox.prevState() //go back                 // 或 $.jBox.goToState('state1');             }              return false;         }     } };  $.jBox(content); 
    示例(六):
     var html = "<div style='padding:10px;'>输入姓名:<input type='text' id='yourname' name='yourname' /></div>"; var submit = function (v, h, f) {     if (f.yourname == '') {         $.jBox.tip("请输入您的姓名。", 'error', { focusId: "yourname" }); // 关闭设置 yourname 为焦点         return false;     }      $.jBox.tip("你叫:" + f.yourname);     //$.jBox.tip("你叫:" + h.find("#yourname").val());     //$.jBox.tip("你叫:" + h.find(":input[name='yourname']").val());      return true; };  $.jBox(html, { title: "你叫什么名字?", submit: submit }); 
    $.jBox.open()
    • 函数原型:
    • $.jBox.open(content, title, width, height, options);
    •     └ 或者 jBox.open(content, title, width, height, options);
    • 参数说明:
    • content (string,json)
    •    └ 可以是string或json。当是string时,需要加上前缀标识(html:、id:、get:、post:、iframe:),如果没有加标识,系统会自动加上html:,具体请看应用例子。当是json时,表示一个或多个状态,每个状态的默认值为 $.jBox.stateDefaults
    • title [可选] (string)
    •    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.defaults.title
    • width [可选] (string,number)
    •    └ 窗口宽度,值为'auto'或具体像素值(例如350),默认值为 $.jBox.defaults.width
    • height [可选] (string,number)
    •    └ 窗口高度,值为'auto'或具体像素值(例如100),默认值为 $.jBox.defaults.height
    • options [可选] (json)
    •    └ 其它参数选项,默认值为 $.jBox.defaults

    • 备注:$.jBox.open() 只是 $.jBox() 的一个扩展,方便 title、width、height 参数的传递。

    示例(一):
     $.jBox.open("iframe:http://www.baidu.com", "百度一下", 800, 350, { buttons: { '关闭': true} }); 
    示例(二): (content为Json对象,比较复杂一点的例子)
     var html1 = '<div class="msg-div">' +             '<p>购买数量:</p><div class="field"><input type="text" id="amount" name="amount" value="1" /></div>' +             '<p>收货地址:</p><div class="field"><textarea id="address" name="address"></textarea></div>' +             '<div class="errorBlock" style="display: none;"></div>' +             '</div>';  var html2 = '<div class="msg-div">' +             '<p>给卖家留言:</p><div class="field"><textarea id="message" name="message"></textarea></div>' +             '</div>';  var data = {}; var states = {}; states.state1 = {     content: html1,     buttons: { '下一步': 1, '取消': 0 },     submit: function (v, h, f) {         if (v == 0) {             return true; // close the window         }         else {             h.find('.errorBlock').hide('fast', function () { $(this).remove(); });              data.amount = f.amount; //或 h.find('#amount').val();             if (data.amount == '' || parseInt(data.amount) < 1) {                 $('<div class="errorBlock" style="display: none;">请输入购买数量!</div>').prependTo(h).show('fast');                 return false;             }             data.address = f.address;             if (data.address == '') {                 $('<div class="errorBlock" style="display: none;">请输入收货地址!</div>').prependTo(h).show('fast');                 return false;             }              $.jBox.nextState(); //go forward             // 或 $.jBox.goToState('state2')         }          return false;     } }; states.state2 = {     content: html2,     buttons: { '上一步': -1, '提交': 1, '取消': 0 },     buttonsFocus: 1, // focus on the second button     submit: function (v, o, f) {         if (v == 0) {             return true; // close the window         } else if (v == -1) {             $.jBox.prevState() //go back             // 或 $.jBox.goToState('state1');         }         else {             data.message = f.message;              // do ajax request here             $.jBox.nextState('<div class="msg-div">正在提交...</div>');             // 或 $.jBox.goToState('state3', '<div class="msg-div">正在提交...</div>')              // asume that the ajax is done, than show the result             var msg = [];             msg.push('<div class="msg-div">');             msg.push('<p>下面是提交的数据</p>');             for (var p in data) {                 msg.push('<p>' + p + ':' + data[p] + '</p>');             }             msg.push('</div>');             window.setTimeout(function () { $.jBox.nextState(msg.join('')); }, 2000);         }          return false;     } }; states.state3 = {     content: '',     buttons: {} // no buttons }; states.state4 = {     content: '',     buttons: { '确定': 0 } };  $.jBox.open(states, '提交订单', 450, 'auto'); 
    $.jBox.prompt()
    • 函数原型:
    • $.jBox.prompt(content, title, icon, options);
    •     └ 或者 jBox.prompt(content, title, icon, options);
    • 参数说明:
    • content (string)
    •    └ 只能是string,不支持前缀标识,默认值为''。
    • title [可选] (string)
    •    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.defaults.title
    • icon [可选] (string)
    •    └ 内容图标,值为'none'时为不显示图标,可选值有'none'、'info'、'question'、'success'、'warning'、'error',默认值为'none'。
    • options [可选] (json)
    •    └ 其它参数选项,默认值为 $.jBox.defaults

    • 备注:以下几个方法由 $.jBox.prompt() 扩展而来,参数类似,请看下面的例子。
    • $.jBox.alert(content, title, options);
    •     └ 或者 jBox.alert(content, title, options);
    • $.jBox.info(content, title, options);
    •     └ 或者 jBox.info(content, title, options);
    • $.jBox.success(content, title, options);
    •     └ 或者 jBox.success(content, title, options);
    • $.jBox.error(content, title, options);
    •     └ 或者 jBox.error(content, title, options);
    • $.jBox.confirm(content, title, submit, options);
    •     └ 或者 jBox.confirm(content, title, submit, options);
    • $.jBox.warning(content, title, submit, options);
    •     └ 或者 jBox.warning(content, title, submit, options);
    •     └ 上面方法中默认按钮的文字设置在 $.jBox.languageDefaults

    示例(一):
     //加了个其它参数closed $.jBox.prompt('Hello jBox', 'jBox', 'info', { closed: function () { alert('prompt is closed.'); } }); 
    示例(二):
     $.jBox.alert('Hello jBox', 'jBox'); 
    示例(三):
     $.jBox.info('Hello jBox', 'jBox'); 
    示例(四):
     $.jBox.success('Hello jBox', 'jBox'); 
    示例(五):
     $.jBox.error('Hello jBox', 'jBox'); 
    示例(六):
     var submit = function (v, h, f) {     if (v == 'ok')         jBox.tip(v, 'info');     else if (v == 'cancel')         jBox.tip(v, 'info');      return true; //close };  $.jBox.confirm("确定吗?", "提示", submit); 
    示例(六02):
     var submit = function (v, h, f) {     if (v == true)         jBox.tip("恩", 'info');     else         jBox.tip("好吖", 'info');      return true; }; // 自定义按钮 $.jBox.confirm("天使,做我女朋友吧?", "表白提示", submit, { buttons: { '恩': true, '好吖': false} }); 
    示例(七):
     var submit = function (v, h, f) {     if (v == 'yes') {         $.jBox.tip('已保存。', 'success');     }     if (v == 'no') {         $.jBox.tip('没保存。');     }     if (v == 'cancel') {         $.jBox.tip('已取消。');     }      return true; }; // 可根据需求仿上例子定义按钮 $.jBox.warning("内容已修改,是否保存?", "提示", submit); 
    $.jBox.tip()
    • 函数原型:
    • $.jBox.tip(content, icon, options);
    •     └ 或者 jBox.tip(content, icon, options);
    • 参数说明:
    • content (string)
    •    └ 只能是string,不支持前缀标识,默认值为''。
    • icon [可选] (string)
    •    └ 内容图标,可选值有'info'、'success'、'warning'、'error'、'loading',默认值为'info',当为'loading'时,timeout值会被设置为0,表示不会自动关闭。
    • options [可选] (json)
    •    └ 其它参数选项,默认值为 $.jBox.tipDefaults

    • 备注:如果想手动关闭tip,请调用 $.jBox.closeTip() 方法。

    示例(一):
     $.jBox.tip('Hello jBox'); 
    示例(二):
     //加了个其它参数focusId $.jBox.tip('关闭后设置输入框为焦点', 'info', { focusId: 'tip-input' }); 
    输入框: 
    示例(三):
     //加了个其它参数closed $.jBox.tip('关闭后设置输入框为已选择', 'error', { closed: function () { $('#tip-input2').select(); } }); 
    输入框: 
    示例(四):
     $.jBox.tip("正在XX,你懂的...", 'loading'); // 模拟2秒后完成操作 window.setTimeout(function () { $.jBox.tip('XX已完成。', 'success'); }, 2000); 
    示例(五):
     var submit = function (v, h, f) {     if (v == 'ok') {         $.jBox.tip("正在删除数据...", 'loading');         // 模拟2秒后完成操作         window.setTimeout(function () { $.jBox.tip('删除成功。', 'success'); }, 2000);     }     else if (v == 'cancel') {         // 取消     }      return true; //close };  $.jBox.confirm("确定要删除数据吗?", "提示", submit); 
    $.jBox.messager()
    • 函数原型:
    • $.jBox.messager(content, title, timeout, options);
    •     └ 或者 jBox.messager(content, title, timeout, options);
    • 参数说明:
    • content (string)
    •    └ 只能是string,不支持前缀标识,默认值为''。
    • title [可选] (string)
    •    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.messagerDefaults.title
    • timeout [可选] (number)
    •    └ 显示多少毫秒后自动关闭,如果为0则不自动关闭,默认值为 $.jBox.messagerDefaults.timeout
    • options [可选] (json)
    •    └ 其它参数选项,默认值为 $.jBox.messagerDefaults

    • 备注:如果想手动关闭messager,请调用 $.jBox.closeMessager() 方法。

    示例(一):
     $.jBox.messager('Hello jBox', 'jBox'); 
    示例(二):
     $.jBox.messager("Hello jBox 2", "my title", null, {  350, showType: 'fade' }); 
    示例(三):
     $.jBox.messager("Hello jBox 3", "my title", 3000, {      350,     icon: 'info',     showType: 'show',     buttons: { '去看看': true },     submit: function (v, h, f) {         $.jBox.info('看个蛋蛋?');         return true;     } }); 
    jBox 其它成员
    • 全局设置:
    • $.jBox.defaults
    • $.jBox.stateDefaults
    • $.jBox.tipDefaults
    • $.jBox.messagerDefaults
    • $.jBox.languageDefaults
    • 其它函数:
    • $.jBox.setDefaults(configs);
    •    └ 设置全局设置,请参考 demo.js 里的使用。
    • $.jBox.getBox();
    •    └ 获取最前面打开的窗口jQuery对象。
    • $.jBox.getIframe(jBoxId);
    •    └ 获取最前面打开的或指定ID的窗口里的 iframe jQuery对象。(方便与iframe的交互)
    • $.jBox.getContent();
    •    └ 获取最前面打开的窗口的内容html。
    • $.jBox.setContent(content);
    •    └ 设置最前面打开的窗口的内容html。
    • $.jBox.getState(stateNmae);
    •    └ 获取最前面打开的窗口可见状态内容。(content为多状态下)
    • $.jBox.getStateName();
    •    └ 获取最前面打开的窗口可见状态的名称。(content为多状态下)
    • $.jBox.goToState(stateName, stateContent);
    •    └ 显示最前面打开的窗口的指定状态,并可设置状态内容。(content为多状态下)
    • $.jBox.nextState(stateContent);
    •    └ 显示最前面打开的窗口的下一个状态,并可设置状态内容。(content为多状态下)
    • $.jBox.prevState(stateContent);
    •    └ 显示最前面打开的窗口的上一个状态,并可设置状态内容。(content为多状态下)
    • $.jBox.close(token);
    •    └ 关闭最前面打开的窗口,token可以是指定jBox的ID或布尔值,如果是true显示关闭所有已打开的窗口。
    • $.jBox.closeTip();
    •    └ 关闭提示(由 $.jBox.tip() 打开的)。
    • $.jBox.closeMessager();
    •    └ 关闭提示(由 $.jBox.messager() 打开的)。

    示例(iframe):
     // 调父窗口请用 parent 或 top,如果是多层iframe,需要调用多个parent var html = "<div style='padding:10px;'>输入点什么:<input type='text' id='some' name='some' /></div>"; var submit = function (v, h, f) {     if (f.some == '') {         // f.some 或 h.find('#some').val() 等于 top.$('#some').val()         top.$.jBox.tip("请输入点什么。", 'error', { focusId: "some" }); // 关闭设置 some 为焦点         return false;     }     top.$.jBox.info("你输入了:" + f.some);      return true; };  top.$.jBox(html, { title: "输入", submit: submit });


  • 相关阅读:
    通用权限管理设计 之 数据库结构设计
    jQuery LigerUI 插件介绍及使用之ligerDateEditor
    jQuery LigerUI 插件介绍及使用之ligerTree
    jQuery LigerUI V1.01(包括API和全部源码) 发布
    jQuery liger ui ligerGrid 打造通用的分页排序查询表格(提供下载)
    jQuery LigerUI V1.1.5 (包括API和全部源码) 发布
    jQuery LigerUI 使用教程表格篇(1)
    jQuery LigerUI V1.0(包括API和全部源码) 发布
    jQuery LigerUI V1.1.0 (包括API和全部源码) 发布
    nginx keepalived
  • 原文地址:https://www.cnblogs.com/ziyan22/p/2246496.html
Copyright © 2011-2022 走看看