65.9K
CodeProject 正在变化。 阅读更多。
Home

eziConfirm:jQuery 确认控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.72/5 (12投票s)

2013 年 2 月 12 日

CPOL

1分钟阅读

viewsIcon

27994

downloadIcon

382

基于 jQuery 的确认插件,将增强 JavaScript 中内置的确认函数。

引言

这是一个基于 jQuery 的确认插件,旨在增强 JavaScript 中内置的 confirm 函数。

背景

我讨厌 JavaScript 中内置的 confirmalert 函数,所以我最终创建了自己的 confirmalert 函数。

这段代码最初没有准备好公开发布,所以我决定将其转换为一个 jQuery 插件。

现在,我向您介绍 eziConfirm jQuery 插件。

Using the Code

文件

附带的 zip 文件包含您所需的一切。

您只需要包含 jQuery、eziconfirm.jseziconfirm.css

    <link rel="stylesheet" type="text/css" href="eziConfirm.css" />
    <script type="text/javascript" src="jquery-1.9.0.min.js"></script>
    <script type="text/javascript" src="eziConfirm.js"></script>

简单的确认窗口

使用 eziConfirm 最简单的方法是仅使用 FireFunction 参数调用 jqConfirm 插件。

$(document.body).eziConfirm(
    { 
        FireFunction: function () {alert('You Click Yes')}
    }
) 

自定义按钮

eziConfirm 默认显示两个按钮(),但您可以添加自定义按钮。

$(document.body).eziConfirm(
    {
        Button:   
            [
                { Title: "Delete", FireFunction: function (){ alert('You Click Delete') } },
                { Title: "Cancle", ClassName: 'red' }
            ]
    }
);

更改标题、描述、宽度和高度

$(document.body).eziConfirm(
    {
        Title: 'Are you sure you want to delete this file?',
        Desc: 'File01.pdf<br/>Type:PDF<br/>Size:40KB',
        Width:320,
        Height:200,
        Button:   
            [
                { Title: "Delete", FireFunction: function (){ alert('You Click Delete') } },
                { Title: "Cancle", ClassName: 'red' }
            ]
    }
);

隐藏关闭按钮

$(document.body).eziConfirm({ 
    CloseButton: false,
        FireFunction: function () { alert('You Click Yes') } 
});

用作警告窗口

$(document.body).eziConfirm({
    Title: 'Alert Window',
    Desc: 'Description Description Description Description 
           Description Description Description Description',
    Button: [{ Title: 'OK', ClassName: 'red'}]
});

用作消息窗口

$(document.body).eziConfirm({
    Title: 'Message',
    Desc: 'Message Message Message Message Message Message Message Message',
    Button: []
});

按钮位置

eziConfirm 支持 4 种不同的按钮定位方式

  • RenderMode.horizontal:水平渲染按钮
  • RenderMode.vertical:垂直渲染按钮
  • RenderMode.auto:以 n*m 表格渲染按钮
  • RenderMode.manual:以给定的列数渲染按钮
...
        RenderMode: RenderMode.horizontal,
... 

...
        RenderMode: RenderMode.vertical,
... 

...
        RenderMode: RenderMode.auto,
... 

...
        RenderMode: RenderMode.manual,
        Cols:3,
... 

从右到左支持

$(document.body).eziConfirm({
    Direction: 'rtl',
    FireFunction: function () { alert('You Click Yes') }
});

高级示例:计算器

以下示例展示了 eziConfirm 的许多选项和功能。

$(document.body).eziConfirm(
    {
        Title: 'Calculator',
        Desc: '<div id=\'result\' 
        style=\'font-weight:bold;font-size:16px;height:22px;background-color:#ffffff\'></div>',
        Height: 170,
        Width: 240,
        RenderMode: RenderMode.manual,
        Cols: 4,
        ButtonDefault: { Width: 33, AutoClose: false },
        Button:
            [
                { Title: "1", FireFunction: function () { CalcKeyPress('1') } },
                { Title: "2", FireFunction: function () { CalcKeyPress('2') } },
                { Title: "3", FireFunction: function () { CalcKeyPress('3') } },

                { Title: "AC", ClassName: 'red', FireFunction: function () { CalcKeyPress('ac') } },

                { Title: "4", FireFunction: function () { CalcKeyPress('4') } },
                { Title: "5", FireFunction: function () { CalcKeyPress('5') } },
                { Title: "6", FireFunction: function () { CalcKeyPress('6') } },

                { Title: "+", ClassName: 'red', FireFunction: function () { CalcKeyPress('+') } },

                { Title: "7", FireFunction: function () { CalcKeyPress('7') } },
                { Title: "8", FireFunction: function () { CalcKeyPress('8') } },
                { Title: "9", FireFunction: function () { CalcKeyPress('9') } },

                { Title: "-", ClassName: 'red', FireFunction: function () { CalcKeyPress('-') } },

                { Title: "0", FireFunction: function () { CalcKeyPress('0') } },

                { Title: "*", ClassName: 'red', FireFunction: function () { CalcKeyPress('*') } },
                { Title: "/", ClassName: 'red', FireFunction: function () { CalcKeyPress('/') } },
                { Title: "=", ClassName: 'tra', FireFunction: function () { CalcKeyPress('=') } }
            ]
    }
);
 
function CalcKeyPress(key) {
 
    switch (key) {
        case 'ac':
            $('#result').html('');
            break;
        case '=':
            $('#result').html(eval($('#result').html()));
            break;
        default:
            $('#result').html($('#result').html() + key);
            break;
    }
}

选项

本节描述了 eziConfirm 可用的选项。这些选项通过参数传递给 $('#selector').eziConfirm(options) 函数进行设置。

选项的描述遵循以下约定

attribute: default,                    // description 
var defaultParam = {
    Title: "Are You Sure?", 	       //Title of Confirm Window
    ClassName : "",                    // specifies css class for confirm window
    Desc: "",                          // specifies description displayed above buttons
    Width: 320,                        // width of confirm window
    Height: 60,                        // height of confirm window
    RenderMode: RenderMode.horizontal, // RenderMode.auto | RenderMode.vertical | 
                                       // RenderMode.horizontal | RenderMode.manual:4
    Cols: 1,                           // Number of columns when RenderMode set to manual
    Button:  [ Button1, Button2, ...] ,
    ButtonDefault : { 
    Width: 100,                        // Default button width 
    Height: 18,                        //Default button height
    ClassName: '',                     //Default button css Class
    AutoClose:true,                    //Default Button Click Action 
    FireGlobalFunction: false,         //Default FireFunction Mode (Global or Local)
    FireFunction: function () { }      //Default FireFunction
    },
    FireFunction: function () {} ,     // Global Fire Function
    CloseButton: true,                 // Show/Hide close button 
    Direction: 'ltr'                   // 'ltr' | 'rtl' 
};
 
var Button = {  
    Title: "Yes",                      // Title for button
    FireGlobalFunction: true ,         // if true on button click Global FireFunction fired
    Width: 100,                        // Width of button
    Height: 18,                        // Height of button
    ClassName: '',                     // specifies css class for button
    AutoClose:true,                    // if true after clicking button confirm window will close
    FireFunction: function () { }},    // Fire function for button
}

代码

附带的 zip 文件包含您所需的一切。

下一步?

  • 模板基础按钮位置
  • 自动关闭计时器

历史

  • 2013/02/16:版本 0.2
    • 从右到左支持
    • 按钮默认选项
    • 隐藏/显示关闭按钮的选项
    • 新示例(警告、消息等)
  • 2013/02/12:首次发布(版本 0.1)
© . All rights reserved.