jquery-confirm是一款功能强大的jQuery对话框和确认框插件。它提供多种内置的主题效果,可以实现ajax远程加载内容,提供动画效果和丰富的配置参数等。它的特点还有:

  • 可以使用键盘控制对话框。
  • 通过ajax加载对话框的内容。
  • 可以在指定时间之后自动关闭对话框。
  • 提供丰富的参数和回调函数。

安装

可以通过Bower来安装该插件。

$ bower install craftpip/jquery-confirm                   
                

使用方法

基本调用
$.confirm({
    confirm: function(){
            console.log('the user clicked confirm');
    },
    cancel: function(){
            console.log('the user clicked cancel');
    }
});                
                
全局默认参数
jconfirm.defaults = {
    title: 'Hello',
    content: 'Are you sure to continue?',
    contentLoaded: function(){
    },
    icon: '',
    confirmButton: 'Okay',
    cancelButton: 'Close',
    confirmButtonClass: 'btn-default',
    cancelButtonClass: 'btn-default',
    theme: 'white',
    animation: 'zoom',
    closeAnimation: 'scale',
    animationSpeed: 500,
    animationBounce: 1.2,
    keyboardEnabled: false,
    rtl: false,
    confirmKeys: [13], // ENTER key
    cancelKeys: [27], // ESC key
    container: 'body',
    confirm: function () {
    },
    cancel: function () {
    },
    backgroundDismiss: false,
    autoClose: false,
    closeIcon: null,
    columnClass: 'col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1',
    onOpen: function(){
    },
    onClose: function(){
    },
    onAction: function(){
    }
};         
                

配置参数

jquery-confirm插件的可用配置参数有:

参数 类型 默认值 描述
title String 'Hello' 对话框的标题
content String, Function 'Are you sure to continue?' 对话框的内容,也可以通过一个函数返回ajax内容
contentLoaded function function(){} 如果通过url前缀来调用内容,如url:http://abc.com/xyz,该参数将是回调函数
icon String '' 标题前面的图标
confirmButton String 'Okay' 确认按钮的文本
cancelButton String 'Close' 取消按钮的文本
confirmButtonClass String 'btn-default' 确认按钮的的class
cancelButtonClass String 'btn-default' 取消按钮的class
theme String 'white' 对话框的颜色主题,可选值有:'white', 'black', 'material' , 'bootstrap'
animation String 'zoom' 打开对话框时的动画效果。可选值有: right, left, bottom, top, rotate, none, opacity, scale, zoom, scaleY, scaleX, rotateY, rotateYR (reverse), rotateX, rotateXR (reverse)
closeAnimation String 'scale' 关闭对话框时的动画,和animation参数的可选值相同
animationSpeed Number 500 动画的持续时间,单位毫秒
animationBounce Float 1.2 打开对话框时添加弹性效果,1=没有弹性效果
keyboardEnabled Boolean false 使用回车键来确认,使用Esc键来取消
confirmKeys Array [13] 当使用keyboardEnabled参数时,可以设置一组键来触发确认事件,默认为13
cancelKeys Array [27] 当使用keyboardEnabled参数时,可以设置一组键来触发取消事件,默认为27
rtl Boolean false 使用从右到左的布局
container String 'body' 指定生成的对话框代码被添加到哪里
confirm Function function(){} 用户点击了确认按钮之后的回调函数
cancel Function function(){} 用户点击了取消按钮之后的回调函数
backgroundDismiss Boolean false 是否允许点击对话框之外的区域来关闭对话框
autoClose String false 在指定的时间之后如果用户没有响应则自动关闭对话框。取值:'confirm|400'
closeIcon Boolean null 在对话框没有按钮的情况下,关闭按钮是可见的。将该参数设置为true可看见关闭按钮
closeIconClass String false 默认使用'X'作为关闭按钮,你可以通过该参数来修改
columnClass String 'col-md-4 col-md-offset-4
col-sm-6 col-sm-offset-3
col-xs-10 col-xs-offset-1'
使用Bootstrap网格系统来进行布局
onOpen Function function(){} 当对话框元素被渲染之后触发
onClose Function function(){} 当对话框被关闭时触发
onAction Function function(){} 当任何指令被执行后都会触发该回调函数
watchInterval Number 100 Watch the modal for changes and gets centered on the screen

API

通过var jc = $.confirm()会返回一个对象实例的引用。通过jc引用可以打开对话框。

var jc = $.confirm({title: 'awesome'}); // jc will be used in the examples below              
            
  • jc.close():关闭对话框。
    var jc = $.confirm({
        ...
    })
    jc.close(); // destroy.  
    
  • jc.isClosed():返回对话框是否被关闭的布尔值。
  • jc.setTitle(string):设置标题。
  • jc.setContent(string):设置内容。
  • jc.setIcon(iconClass):设置按钮。
  • jc.setDialogCenter():将对话框居中显示。
  • jc.$body:别名:jc.$b,模态窗口对象。
  • jc.$content:别名:jc.contentDiv。可以通过该对象来访问对话框的内容。
    var jc = $.confirm({
        content: 'Yeah, this is awesome'
    })
    console.log(jc.$content.html()); // Yeah, this is awesom
    
  • jc.$title:可访问标题的对象。
  • jc.$icon:可访问图标的对象。
  • jc.$confirmButton:可访问确认按钮的对象。
  • jc.$cancelButton:可访问取消按钮的对象。
  • jc.$closeButton:可访问关闭按钮的对象。
  • jc.$target:可访问点击元素的对象。

jquery-confirm插件的github地址为:https://github.com/craftpip/jquery-confirm