html自定义确认框,jquery自定义对话框alert、confirm和prompt

这个博客介绍了如何使用jQuery实现自定义的对话框,包括alert、confirm和prompt功能。通过jAlert、jConfirm和jPrompt函数,可以创建具有可定制样式的提示消息,并提供了回调函数支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//Download by////

//Usage://jAlert( message, [title, callback] )//jConfirm( message, [title, callback] )//jPrompt( message, [value, title, callback] )// //History://

//1.00 - Released (29 December 2008)//2013-7-8

(function($) {

$.alerts={//These properties can be read/written by accessing $.alerts.propertyName from your scripts at any time

verticalOffset:-75, //vertical offset of the dialog from center screen, in pixels

horizontalOffset: 0, //horizontal offset of the dialog from center screen, in pixels/

repositionOnResize: true, //re-centers the dialog on window resize

overlayOpacity: .01, //transparency level of overlay

overlayColor: '#FFF', //base color of overlay

draggable: true, //make the dialogs draggable (requires UI Draggables plugin)

okButton: ' OK ', //text for the OK button

cancelButton: ' Cancel ', //text for the Cancel button

dialogClass: alert:function(message, title, callback) {if( title == null ) title = 'Alert';

$.alerts._show(title, message,null, 'alert', function(result) {if( callback ) callback(result);

});

},

confirm:function(message, title, callback) {if( title == null ) title = 'Confirm';

$.alerts._show(title, message,null, 'confirm', function(result) {if( callback ) callback(result);

});

},

prompt:function(message, value, title, callback) {if( title == null ) title = 'Prompt';

$.alerts._show(title, message, value,'prompt', function(result) {if( callback ) callback(result);

});

},//Private methods

_show:function(title, msg, value, type, callback) {

$.alerts._hide();

$.alerts._overlay('show');

$("BODY").append('

' +

'

' +

'

' +

'

'

' +

'

');if( $.alerts.dialogClass ) $("#popup_container").addClass($.alerts.dialogClass);pos = ('undefined' == typeof (document.body.style.maxHeight)) ? 'absolute' : 'fixed';

$("#popup_container").css({

position: pos,

zIndex:99999,

padding:0,

margin:0});

$("#popup_title").text(title);

$("#popup_content").addClass(type);

$("#popup_message").text(msg);

$("#popup_message").html( $("#popup_message").text().replace(/\n/g, '
') );

$("#popup_container").css({

minWidth: $("#popup_container").outerWidth(),

maxWidth: $("#popup_container").outerWidth()

});

$.alerts._reposition();

$.alerts._maintainPosition(true);switch( type ) {case 'alert':

$("#popup_message").after('

$("#popup_ok").click( function() {

$.alerts._hide();

callback(true);

});

$("#popup_ok").focus().keypress( function(e) {if( e.keyCode == 13 || e.keyCode == 27 ) $("#popup_ok").trigger('click');

});break;case 'confirm':

$("#popup_message").after('

$("#popup_ok").click( function() {

$.alerts._hide();if( callback ) callback(true);

});

$("#popup_cancel").click( function() {

$.alerts._hide();if( callback ) callback(false);

});

$("#popup_ok").focus();

$("#popup_ok, #popup_cancel").keypress( function(e) {if( e.keyCode == 13 ) $("#popup_ok").trigger('click');if( e.keyCode == 27 ) $("#popup_cancel").trigger('click');

});break;case 'prompt':

$("#popup_message").append('').after('

$("#popup_prompt").width( $("#popup_message").width() );

$("#popup_ok").click( function() {var val = $("#popup_prompt").val();

$.alerts._hide();if( callback ) callback( val );

});

$("#popup_cancel").click( function() {

$.alerts._hide();if( callback ) callback( null);

});

$("#popup_prompt, #popup_ok, #popup_cancel").keypress( function(e) {if( e.keyCode == 13 ) $("#popup_ok").trigger('click');if( e.keyCode == 27 ) $("#popup_cancel").trigger('click');

});if( value ) $("#popup_prompt").val(value);

$("#popup_prompt").focus().select();break;

}( $.alerts.draggable ) {try{

$("#popup_container").draggable({ handle: $("#popup_title") });

$("#popup_title").css({ cursor: 'move'});

}}

}

},

_hide:function() {

$("#popup_container").remove();

$.alerts._overlay('hide');

$.alerts._maintainPosition(false);

},

_overlay:function(status) {switch( status ) {case 'show':

$.alerts._overlay('hide');

$("BODY").append('

$("#popup_overlay").css({

position:'absolute',

zIndex:99998,

top:'0px',

left:'0px',

width:'100%',

height: $(document).height(),

background: $.alerts.overlayColor,

opacity: $.alerts.overlayOpacity

});break;case 'hide':

$("#popup_overlay").remove();break;

}

},

_reposition:function() {var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) +$.alerts.verticalOffset;var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) +$.alerts.horizontalOffset;if( top < 0 ) top = 0;if( left < 0 ) left = 0;('undefined' == typeof (document.body.style.maxHeight)) top = top +$(window).scrollTop();

$("#popup_container").css({

top: top+ 'px',

left: left+ 'px'});

$("#popup_overlay").height( $(document).height() );

},

_maintainPosition:function(status) {if( $.alerts.repositionOnResize ) {switch(status) {case true:

$(window).bind('resize', function() {

$.alerts._reposition();

});break;case false:

$(window).unbind('resize');break;

}

}

}

}//Shortuct functions

jAlert = function(message, title, callback) {

$.alerts.alert(message, title, callback);

}

jConfirm= function(message, title, callback) {

$.alerts.confirm(message, title, callback);

};

jPrompt= function(message, value, title, callback) {

$.alerts.prompt(message, value, title, callback);

};

})(jQuery);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值