插件说明 
- jBox 是一款基于 jQuery 的多功能对话框插件,能够实现网站的整体风格效果,给用户一个新的视觉享受。 
运行环境 
- 兼容 IE6+、Firefox、Chrome、Safari、Opera 等主流浏览器。备注:IE不支持边框的圆角样式,不推荐大家使用蛋痛的IE浏览器。 
使用授权 
- jBox 永久免费使用,但是必须保留相关的版权信息。如果有好的建议,请Email: kudychen@gmail.com,jBox的完善需要大家的好建议。 
使用方法

  1. <script type="text/javascript" src="jBox/jquery-1.4.2.min.js"></script>
  2. <script type="text/javascript" src="jBox/jquery.jBox-2.3.min.js"></script>
  3. <script type="text/javascript" src="jBox/i18n/jquery.jBox-zh-CN.js"></script>
  4. <link type="text/css" rel="stylesheet" href="jBox/Skins/皮肤文件夹/jbox.css"/>
  5. // 或
  6. <link type="text/css" rel="stylesheet" href="jBox/Skins2/皮肤文件夹/jbox.css"/>
    1. 函数原型:
    2. $.jBox(content, options);
    3.     └ 或者 jBox(content, options);
    4. 参数说明:
    5. - content (string,json)
    6.    └ 可以是string或json。当是string时,需要加上前缀标识(html:、id:、get:、post:、iframe:),如果没有加标识,系统会自动加上html:,具体请看应用例子。当是json时,表示一个或多个状态,每个状态的默认值为 $.jBox.stateDefaults。
    7. - options [可选] (json)
    8.    └ 其它参数选项,默认值为 $.jBox.defaults。
    9. 备注:如果想手动关闭jBox(不包括下面的tip与messager,它们另有方法),请调用 $.jBox.close(token) 方法。
    10. 示例(一):
    11. // 此例省略了前缀html:,前缀标识是不区分大小写的,也可以是HTML:
    12. var info = 'jQuery jBox<br /><br />版本:v2.0<br />日期:2011-7-24<br />';
    13. info += '官网:<a target="_blank" href="http://kudystudio.com/jbox">http://kudystudio.com/jbox</a>';
    14. $.jBox.info(info);
    15. 示例(二):
    16. // 显示id为id-html的div内部html,同时设置了bottomText
    17. $.jBox('id:id-html', { bottomText: '这是底部文字' });
    18. 这里是id为id-html的div内部html,同时设置了bottomText
    19. 示例(三):
    20. // ajax get 页面ajax.html的内容并显示,例如要提交id=1,则地址应该为 ajax.html?id=1,post:前缀的使用与get:的一样
    21. $.jBox("get:ajax.html");
    22. 示例(四):
    23. // 用iframe显示http://www.baidu.com的内容,并设置了标题、宽与高、按钮
    24. $.jBox("iframe:http://www.baidu.com", {
    25. title: "百度一下",
    26. width: 800,
    27. height: 350,
    28. buttons: { '关闭': true }
    29. });
    30. 示例(五):
    31. var content = {
    32. state1: {
    33. content: '状态一',
    34. buttons: { '下一步': 1, '取消': 0 },
    35. buttonsFocus: 0,
    36. submit: function (v, h, f) {
    37. if (v == 0) {
    38. return true; // close the window
    39. }
    40. else {
    41. $.jBox.nextState(); //go forward
    42. // 或 $.jBox.goToState('state2')
    43. }
    44. return false;
    45. }
    46. },
    47. state2: {
    48. content: '状态二,请关闭窗口哇:)',
    49. buttons: { '上一步': 1, '取消': 0 },
    50. buttonsFocus: 0,
    51. submit: function (v, h, f) {
    52. if (v == 0) {
    53. return true; // close the window
    54. } else {
    55. $.jBox.prevState() //go back
    56. // 或 $.jBox.goToState('state1');
    57. }
    58. return false;
    59. }
    60. }
    61. };
    62. $.jBox(content);
    63. 示例(六):
    64. var html = "<div style='padding:10px;'>输入姓名:<input type='text' id='yourname' name='yourname' /></div>";
    65. var submit = function (v, h, f) {
    66. if (f.yourname == '') {
    67. $.jBox.tip("请输入您的姓名。", 'error', { focusId: "yourname" }); // 关闭设置 yourname 为焦点
    68. return false;
    69. }
    70. $.jBox.tip("你叫:" + f.yourname);
    71. //$.jBox.tip("你叫:" + h.find("#yourname").val());
    72. //$.jBox.tip("你叫:" + h.find(":input[name='yourname']").val());
    73. return true;
    74. };
    75. $.jBox(html, { title: "你叫什么名字?", submit: submit });
    76. $.jBox.open()
    77. 函数原型:
    78. $.jBox.open(content, title, width, height, options);
    79.     └ 或者 jBox.open(content, title, width, height, options);
    80. 参数说明:
    81. - content (string,json)
    82.    └ 可以是string或json。当是string时,需要加上前缀标识(html:、id:、get:、post:、iframe:),如果没有加标识,系统会自动加上html:,具体请看应用例子。当是json时,表示一个或多个状态,每个状态的默认值为 $.jBox.stateDefaults。
    83. - title [可选] (string)
    84.    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.defaults.title。
    85. - width [可选] (string,number)
    86.    └ 窗口宽度,值为'auto'或具体像素值(例如350),默认值为 $.jBox.defaults.width。
    87. - height [可选] (string,number)
    88.    └ 窗口高度,值为'auto'或具体像素值(例如100),默认值为 $.jBox.defaults.height。
    89. - options [可选] (json)
    90.    └ 其它参数选项,默认值为 $.jBox.defaults。
    91. 备注:$.jBox.open() 只是 $.jBox() 的一个扩展,方便 title、width、height 参数的传递。
    92. 示例(一):
    93. $.jBox.open("iframe:http://www.baidu.com", "百度一下", 800, 350, { buttons: { '关闭': true} });
    94. 示例(二): (content为Json对象,比较复杂一点的例子)
    95. var html1 = '<div class="msg-div">' +
    96. '<p>购买数量:</p><div class="field"><input type="text" id="amount" name="amount" value="1" /></div>' +
    97. '<p>收货地址:</p><div class="field"><textarea id="address" name="address"></textarea></div>' +
    98. '<div class="errorBlock" style="display: none;"></div>' +
    99. '</div>';
    100. var html2 = '<div class="msg-div">' +
    101. '<p>给卖家留言:</p><div class="field"><textarea id="message" name="message"></textarea></div>' +
    102. '</div>';
    103. var data = {};
    104. var states = {};
    105. states.state1 = {
    106. content: html1,
    107. buttons: { '下一步': 1, '取消': 0 },
    108. submit: function (v, h, f) {
    109. if (v == 0) {
    110. return true; // close the window
    111. }
    112. else {
    113. h.find('.errorBlock').hide('fast', function () { $(this).remove(); });
    114. data.amount = f.amount; //或 h.find('#amount').val();
    115. if (data.amount == '' || parseInt(data.amount) < 1) {
    116. $('<div class="errorBlock" style="display: none;">请输入购买数量!</div>').prependTo(h).show('fast');
    117. return false;
    118. }
    119. data.address = f.address;
    120. if (data.address == '') {
    121. $('<div class="errorBlock" style="display: none;">请输入收货地址!</div>').prependTo(h).show('fast');
    122. return false;
    123. }
    124. $.jBox.nextState(); //go forward
    125. // 或 $.jBox.goToState('state2')
    126. }
    127. return false;
    128. }
    129. };
    130. states.state2 = {
    131. content: html2,
    132. buttons: { '上一步': -1, '提交': 1, '取消': 0 },
    133. buttonsFocus: 1, // focus on the second button
    134. submit: function (v, o, f) {
    135. if (v == 0) {
    136. return true; // close the window
    137. } else if (v == -1) {
    138. $.jBox.prevState() //go back
    139. // 或 $.jBox.goToState('state1');
    140. }
    141. else {
    142. data.message = f.message;
    143. // do ajax request here
    144. $.jBox.nextState('<div class="msg-div">正在提交...</div>');
    145. // 或 $.jBox.goToState('state3', '<div class="msg-div">正在提交...</div>')
    146. // asume that the ajax is done, than show the result
    147. var msg = [];
    148. msg.push('<div class="msg-div">');
    149. msg.push('<p>下面是提交的数据</p>');
    150. for (var p in data) {
    151. msg.push('<p>' + p + ':' + data[p] + '</p>');
    152. }
    153. msg.push('</div>');
    154. window.setTimeout(function () { $.jBox.nextState(msg.join('')); }, 2000);
    155. }
    156. return false;
    157. }
    158. };
    159. states.state3 = {
    160. content: '',
    161. buttons: {} // no buttons
    162. };
    163. states.state4 = {
    164. content: '',
    165. buttons: { '确定': 0 }
    166. };
    167. $.jBox.open(states, '提交订单', 450, 'auto');
    168. $.jBox.prompt()
    169. 函数原型:
    170. $.jBox.prompt(content, title, icon, options);
    171.     └ 或者 jBox.prompt(content, title, icon, options);
    172. 参数说明:
    173. - content (string)
    174.    └ 只能是string,不支持前缀标识,默认值为''。
    175. - title [可选] (string)
    176.    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.defaults.title。
    177. - icon [可选] (string)
    178.    └ 内容图标,值为'none'时为不显示图标,可选值有'none'、'info'、'question'、'success'、'warning'、'error',默认值为'none'。
    179. - options [可选] (json)
    180.    └ 其它参数选项,默认值为 $.jBox.defaults。
    181. 备注:以下几个方法由 $.jBox.prompt() 扩展而来,参数类似,请看下面的例子。
    182. $.jBox.alert(content, title, options);
    183.     └ 或者 jBox.alert(content, title, options);
    184. $.jBox.info(content, title, options);
    185.     └ 或者 jBox.info(content, title, options);
    186. $.jBox.success(content, title, options);
    187.     └ 或者 jBox.success(content, title, options);
    188. $.jBox.error(content, title, options);
    189.     └ 或者 jBox.error(content, title, options);
    190. $.jBox.confirm(content, title, submit, options);
    191.     └ 或者 jBox.confirm(content, title, submit, options);
    192. $.jBox.warning(content, title, submit, options);
    193.     └ 或者 jBox.warning(content, title, submit, options);
    194.     └ 上面方法中默认按钮的文字设置在 $.jBox.languageDefaults
    195. 示例(一):
    196. //加了个其它参数closed
    197. $.jBox.prompt('Hello jBox', 'jBox', 'info', { closed: function () { alert('prompt is closed.'); } });
    198. 示例(二):
    199. $.jBox.alert('Hello jBox', 'jBox');
    200. 示例(三):
    201. $.jBox.info('Hello jBox', 'jBox');
    202. 示例(四):
    203. $.jBox.success('Hello jBox', 'jBox');
    204. 示例(五):
    205. $.jBox.error('Hello jBox', 'jBox');
    206. 示例(六):
    207. var submit = function (v, h, f) {
    208. if (v == 'ok')
    209. jBox.tip(v, 'info');
    210. else if (v == 'cancel')
    211. jBox.tip(v, 'info');
    212. return true; //close
    213. };
    214. $.jBox.confirm("确定吗?", "提示", submit);
    215. 示例(六02):
    216. var submit = function (v, h, f) {
    217. if (v == true)
    218. jBox.tip("恩", 'info');
    219. else
    220. jBox.tip("好吖", 'info');
    221. return true;
    222. };
    223. // 自定义按钮
    224. $.jBox.confirm("天使,做我女朋友吧?", "表白提示", submit, { buttons: { '恩': true, '好吖': false} });
    225. 示例(七):
    226. var submit = function (v, h, f) {
    227. if (v == 'yes') {
    228. $.jBox.tip('已保存。', 'success');
    229. }
    230. if (v == 'no') {
    231. $.jBox.tip('没保存。');
    232. }
    233. if (v == 'cancel') {
    234. $.jBox.tip('已取消。');
    235. }
    236. return true;
    237. };
    238. // 可根据需求仿上例子定义按钮
    239. $.jBox.warning("内容已修改,是否保存?", "提示", submit);
    240. $.jBox.tip()
    241. 函数原型:
    242. $.jBox.tip(content, icon, options);
    243.     └ 或者 jBox.tip(content, icon, options);
    244. 参数说明:
    245. - content (string)
    246.    └ 只能是string,不支持前缀标识,默认值为''。
    247. - icon [可选] (string)
    248.    └ 内容图标,可选值有'info'、'success'、'warning'、'error'、'loading',默认值为'info',当为'loading'时,timeout值会被设置为0,表示不会自动关闭。
    249. - options [可选] (json)
    250.    └ 其它参数选项,默认值为 $.jBox.tipDefaults。
    251. 备注:如果想手动关闭tip,请调用 $.jBox.closeTip() 方法。
    252. 示例(一):
    253. $.jBox.tip('Hello jBox');
    254. 示例(二):
    255. //加了个其它参数focusId
    256. $.jBox.tip('关闭后设置输入框为焦点', 'info', { focusId: 'tip-input' });
    257. 输入框:
    258. 示例(三):
    259. //加了个其它参数closed
    260. $.jBox.tip('关闭后设置输入框为已选择', 'error', { closed: function () { $('#tip-input2').select(); } });
    261. 输入框:
    262. 示例(四):
    263. $.jBox.tip("正在XX,你懂的...", 'loading');
    264. // 模拟2秒后完成操作
    265. window.setTimeout(function () { $.jBox.tip('XX已完成。', 'success'); }, 2000);
    266. 示例(五):
    267. var submit = function (v, h, f) {
    268. if (v == 'ok') {
    269. $.jBox.tip("正在删除数据...", 'loading');
    270. // 模拟2秒后完成操作
    271. window.setTimeout(function () { $.jBox.tip('删除成功。', 'success'); }, 2000);
    272. }
    273. else if (v == 'cancel') {
    274. // 取消
    275. }
    276. return true; //close
    277. };
    278. $.jBox.confirm("确定要删除数据吗?", "提示", submit);
    279. $.jBox.messager()
    280. 函数原型:
    281. $.jBox.messager(content, title, timeout, options);
    282.     └ 或者 jBox.messager(content, title, timeout, options);
    283. 参数说明:
    284. - content (string)
    285.    └ 只能是string,不支持前缀标识,默认值为''。
    286. - title [可选] (string)
    287.    └ 窗口标题,值为null时为不显示标题,默认值为 $.jBox.messagerDefaults.title。
    288. - timeout [可选] (number)
    289.    └ 显示多少毫秒后自动关闭,如果为0则不自动关闭,默认值为 $.jBox.messagerDefaults.timeout。
    290. - options [可选] (json)
    291.    └ 其它参数选项,默认值为 $.jBox.messagerDefaults。
    292. 备注:如果想手动关闭messager,请调用 $.jBox.closeMessager() 方法。
    293. 示例(一):
    294. $.jBox.messager('Hello jBox', 'jBox');
    295. 示例(二):
    296. $.jBox.messager("Hello jBox 2", "my title", null, { width: 350, showType: 'fade' });
    297. 示例(三):
    298. $.jBox.messager("Hello jBox 3", "my title", 3000, {
    299. width: 350,
    300. icon: 'info',
    301. showType: 'show',
    302. buttons: { '去看看': true },
    303. submit: function (v, h, f) {
    304. $.jBox.info('看个蛋蛋?');
    305. return true;
    306. }
    307. });
    308. jBox 其它成员
    309. 全局设置:
    310. $.jBox.defaults
    311. $.jBox.stateDefaults
    312. $.jBox.tipDefaults
    313. $.jBox.messagerDefaults
    314. $.jBox.languageDefaults
    315. 其它函数:
    316. - $.jBox.setDefaults(configs);
    317.    └ 设置全局设置,请参考 demo.js 里的使用。
    318. - $.jBox.getBox();
    319.    └ 获取最前面打开的窗口jQuery对象。
    320. - $.jBox.getIframe(jBoxId);
    321.    └ 获取最前面打开的或指定ID的窗口里的 iframe jQuery对象。(方便与iframe的交互)
    322. - $.jBox.getContent();
    323.    └ 获取最前面打开的窗口的内容html。
    324. - $.jBox.setContent(content);
    325.    └ 设置最前面打开的窗口的内容html。
    326. - $.jBox.getState(stateNmae);
    327.    └ 获取最前面打开的窗口可见状态内容。(content为多状态下)
    328. - $.jBox.getStateName();
    329.    └ 获取最前面打开的窗口可见状态的名称。(content为多状态下)
    330. - $.jBox.goToState(stateName, stateContent);
    331.    └ 显示最前面打开的窗口的指定状态,并可设置状态内容。(content为多状态下)
    332. - $.jBox.nextState(stateContent);
    333.    └ 显示最前面打开的窗口的下一个状态,并可设置状态内容。(content为多状态下)
    334. - $.jBox.prevState(stateContent);
    335.    └ 显示最前面打开的窗口的上一个状态,并可设置状态内容。(content为多状态下)
    336. - $.jBox.close(token);
    337.    └ 关闭最前面打开的窗口,token可以是指定jBox的ID或布尔值,如果是true显示关闭所有已打开的窗口。
    338. - $.jBox.closeTip();
    339.    └ 关闭提示(由 $.jBox.tip() 打开的)。
    340. - $.jBox.closeMessager();
    341.    └ 关闭提示(由 $.jBox.messager() 打开的)。
    342. 示例(iframe):
    343. // 调父窗口请用 parent 或 top,如果是多层iframe,需要调用多个parent
    344. var html = "<div style='padding:10px;'>输入点什么:<input type='text' id='some' name='some' /></div>";
    345. var submit = function (v, h, f) {
    346. if (f.some == '') {
    347. // f.some 或 h.find('#some').val() 等于 top.$('#some').val()
    348. top.$.jBox.tip("请输入点什么。", 'error', { focusId: "some" }); // 关闭设置 some 为焦点
    349. return false;
    350. }
    351. top.$.jBox.info("你输入了:" + f.some);
    352. return true;
    353. };
    354. top.$.jBox(html, { title: "输入", submit: submit });

JBox使用详解的更多相关文章

  1. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

  2. 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)

    一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  5. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  6. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  7. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  8. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  9. Node.js npm 详解

    一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...

随机推荐

  1. 二叉排序树、平衡二叉树、B树&B+树、红黑树的设计动机、缺陷与应用场景

    之前面试时曾被问到"如果实现操作系统的线程调度应该采用什么数据结构?",因为我看过ucore的源码,知道ucore是采用斜堆的方式实现的,可以做到O(n)的插入.O(1)的查找.我 ...

  2. 对TCP三次握手四次分手还不清楚的速度进,超简单解析,明白了就很好记!

    关于TCP三次握手四次分手,之前看资料解释的都很笼统,很多地方都不是很明白,所以很难记,前几天看的一个博客豁然开朗,可惜现在找不到了.现在把之前的疑惑总结起来,方便一下大家. 先上个TCP三次握手和四 ...

  3. @Scope注解

    @Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE)这个是说在每次注入的时候回自动创建一个新的bean实例 @Scope(value=Config ...

  4. Yii2框架ACF(AccessControl Filter)的使用

    AccessControl其实也就是 yii\filters\AccessControl Filter, 我们下面简写为 ACF 作为描述. ACF,访问控制过滤器,适用于简单的验证,面对的对象便是控 ...

  5. 3.2 while 循环

    Python 编程中 while 语句用于循环执行程序,即在条件满足的情况下,循环执行某段代码.所以就需要在循环的代码块中设计一种使代码块循环执行一定次数后是while语句的条件不满足,从而中止whi ...

  6. MyBatis入门一

    本人只是刚刚学习MyBatis,作为学习路程的记录,写的不好,不完善的地方请多多包涵: 首先,先比较一下Hibernate和MyBatis两种框架之间的区别: 两种都是ORM框架,但是Hibernat ...

  7. 注意Vietnamese_CI_AS排序规则下的特殊字符大小敏感问题

    注意Vietnamese_CI_AS排序规则下的特殊字符大小敏感问题   最近,在SQL Server中遇到了Vietnamese_CI_AS排序规则的特殊字符的大小写敏感问题,是的,你没有看错,这句 ...

  8. 求sum=1+111+1111+........+1....111 .

    1,思路 大数相加,若直接使用int,或者long都会超出长度,因此考虑使用String存储. 2,代码 public class LargeNumAdd { public static void m ...

  9. 基于am3358的led跑马灯测试

    #include <sys/ioctl.h> #include<stdio.h> #include <fcntl.h> #include <sys/types ...

  10. “net usershare”返回错误 255

    1 错误描述 youhaidong@youhaidong:~$ sudo nautilus (nautilus:4429): Gtk-WARNING **: Failed to register cl ...