http://www.0773linji.com/jquery_plugs/jq_dialog/
演示二
$("#openBox2").click(function(){ $.dialog.alert(\'你确定要上传图片吗?\',function(){alert(\'关闭\');}); });
演示三
$("#openBox3").click(function(){ $.dialog.open({ title: \'Hello World!\', width:200, drag:true }); });
相关代码
(function($) {
$.extend({
dialog:function(options){
//默认配置
var defaults = {
//对话框ID
id: false,
//消息内容
content: "弹出框内容区",
//确定按钮文本
okValue: \'确定\',
//取消按钮文本
cancelValue: \'取消\',
//标题
title: "标题区",
//内容宽度
width: "auto",
//内容高度
height: "auto",
//是否锁屏
lock: true,
//是否拖动
drag:false
};
var config = $.extend(defaults, options);
config.id = config.id ? config.id : new Date().getTime();
//插入DOM
var dom = $(\'<div id="\' + config.id + \'">\' + $.dialog.templates + \'</div>\').hide();
dom.css({\'position\': \'absolute\', \'z-index\': \'9999\'});
$("body").append(dom);
/**
* 初始化设置
*/
this.init = function () {
this.dom = dom;
this.config = config;
dom.find(\'.openDialog_buttons\').hide();
//设置内容
this.content(config.content);
//设置标题
this.title(config.title);
//设置尺寸
this.size(config.width, config.height);
//设置居中
this.position();
//设置锁屏
if (config.lock) {
this.lock();
}
if(config.drag)
{
//拖拽支持
var mouse = {x:0, y:0};
function drag(event) {
var e = window.event || event;
var top = parseInt(dom.css(\'top\')) + (e.clientY - mouse.y);
var left = parseInt(dom.css(\'left\')) + (e.clientX - mouse.x);
dom.css({top:top,left:left});
mouse.x = e.clientX;
mouse.y = e.clientY;
}
dom.find(".openDialog_header").mousedown(function(event){
var e = window.event || event;
mouse.x = e.clientX;
mouse.y = e.clientY;
$(document).bind(\'mousemove\', drag);
});
$(document).mouseup(function(event){
$(document).unbind(\'mousemove\', drag);
});
}
//监听事件
dom.find(".openDialog_close").bind("click", this.close);
config.id = false;
}
/**
* 打开对话框
*/
this.open = function () {
this.init();
dom.fadeIn();
}
/**
* 设置内容
* @param {String} 内容
*/
this.content = function (message) {
if (typeof message === "string") {
dom.find(".openDialog_main").html(message);
}
}
/**
* 设置标题
* @param {String, Boolean} 标题内容. 为 false 则隐藏标题栏
*/
this.title = function (content) {
if (content === false) {
dom.find(".openDialog_header").hide();
dom.find(".openDialog_title").html(\'\')
} else {
dom.find(".openDialog_header").show();
dom.find(".openDialog_title").html(content)
};
}
/**
* 位置居中
*/
this.position = function () {
var left = ($(window).width() - dom.outerWidth()) / 2.0;
var top = ($(window).height() - dom.outerHeight()) /3.0;
dom.css({
top: top + $(document).scrollTop(),
left: left + $(document).scrollLeft()
});
}
/**
* 尺寸
* @param {Number, String} 宽度
* @param {Number, String} 高度
*/
this.size = function (width, height) {
if (typeof width === "number") {
width = width + "px";
};
if (typeof height === "number") {
height = height + "px";
};
dom.find(".openDialog_main").css("width", width);
dom.find(".openDialog_main").css("height", height);
}
/**
* 显示对话框
*/
this.visible = function () {
dom.css("visibility", "visible");
}
/**
* 隐藏对话框
*/
this.hidden = function () {
dom.css("visibility", "hidden");
}
/**
* 关闭对话框
*/
this.close = function () {
dom.fadeOut("slow", function(){
$(this).remove();
});
$(".openDialog_mask").remove();
}
/**
* 锁屏
*/
this.lock=function(){
$("body").append(\'<div id="\' + this.config.id + \'" class="openDialog_mask"></div>\');
$(".openDialog_mask").css({
\'z-index\': \'8888\',
"left":"0px",
"top":"0px",
"width":"100%",
"height":\'100%\',
\'display\': \'block\'
});
};
}
});
/**
* HTML模板
*/
$.dialog.templates =
\'<div class="openDialog">\'
+ \'<table class="openDialog_border" border="0" cellspacing="0" cellpadding="0">\'
+ \'<tbody>\'
+ \'<tr>\'
+ \'<td class="openDialog_header">\'
+ \'<div class="openDialog_title">Title</div>\'
+ \'<a class="openDialog_close" href="javascript:">[关闭]</a>\'
+ \'</td>\'
+ \'</tr>\'
+ \'<tr>\'
+ \'<td class="openDialog_main">\'
+ \'</td>\'
+ \'</tr>\'
+ \'<tr>\'
+ \'<td class="openDialog_footer">\'
+ \'<div class="openDialog_buttons"></div>\'
+ \'</td>\'
+ \'</tr>\'
+ \'</tbody>\'
+ \'</table>\'
+\'</div>\';
/*窗口对象展现方法集合*/
$.dialog.open = function(options){
var dialog = new $.dialog(options);
dialog.init();
dialog.dom.fadeIn();
return dialog;
};
$.dialog.alert = function(content, callback){
var dialog = new $.dialog({
id: \'Alert\',
lock: true,
content: content
});
dialog.init();
$(\'#Alert\').find(\'.openDialog_buttons\').append(\'<input
class="openDialog_button" type="button" value="\' + dialog.config.okValue
+ \'">\');
dialog.dom.find(\'.openDialog_buttons\').show();
dialog.dom.fadeIn();
$(\'.openDialog_button\').bind(\'click\',callback);
$(\'.openDialog_button\').bind(\'click\',dialog.close);
return dialog;
};
})(jQuery);