使用方法: <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(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: "百度一下",
width: 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(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(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(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(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, { width: 350, showType: 'fade' });
示例(三):
$.jbox.messager("Hello jbox 3", "my title", 3000, {
width: 350,
icon: 'info',
showType: 'show',
buttons: { '去看看': true },
submit: function (v, h, f) {
$.jbox.info('看个蛋蛋?');
return true;
}
});
全局设置: $.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 });