学习--jquery 自定义插件 面向对象 -- 模拟 jquery EasyUi的 自定义 alert + confirm
2015-12-04 09:32
706 查看
(function ($) { /** * 窗口外框 * @returns {*} */ function my_window() { var win = $('<div class="m-layer z-display"></div>').appendTo('body'); return win; }; function my_table() { var table = $('<table></table>'); return table; }; function my_tr() { var tr = $('<tr></tr>'); return tr; }; function my_td() { var td = $('<td></td>'); return td; }; function my_lywrap() { var div = $('<div class="lywrap"></div>'); return div; }; /** * 标题 * @returns {*} */ function my_title(text) { var lytt = $('<div class="lytt"></div>'); var title = $('<h2 class="clx-font-bold clx-article-fontColor clx-font-xl">标题</h2>').appendTo(lytt); title.html(text); return lytt }; function my_lyct(text) { var lyct = $('<div class="lyct"></div>'); lyct.html(text); return lyct; }; /** * 文本内容 * @returns {*} */ function my_content(text) { var content = $('<p class="warring-text">确定要执行此操作?</p>'); content.html(text); return content; }; /** * 关闭 X 按钮 * @returns {*} */ function my_close() { var close = $('<span class="lyclose">×</span>'); close.click(function () { $('body').css({overflow: ''}); $('body > div.z-show').remove(); }); return close; }; /** * 按钮区域组 * @returns {*} */ function my_lybt() { var lybt = $('<div class="lybt"></div>'); return lybt; }; /** * 按钮区域组 * @returns {*} */ function my_buttonGroup() { var group = $('<div class="check-btn-group"></div>'); return group; }; /** * 确定按钮 * @returns {*} */ function my_ok(callback) { var ok = $('<a class="clx-sure-btn">确定</a>'); ok.click(function () { if (callback) { callback(true); } my_close().click(); }); return ok; }; /** * 取消按钮 * @returns {*} */ function my_cancel(callback) { var cancel = $('<a class="clx-default-btn">取消</a>'); cancel.click(function () { if (callback) { callback(false); } my_close().click(); }); return cancel; }; /** * $.messager 相当于定义一个java的 类对象 * $.messager.alert,$.messager.confirm 相当于 类中的方法 * * @param options * @returns {boolean} */ $.messager = { alert: function (tt, message) { // 动态拼接模块 var win = my_window(); var table = my_table().appendTo(win); var table_tr = my_tr().appendTo(table); var table_tr_td = my_td().appendTo(table_tr); var table_tr_td_lywrap = my_lywrap().appendTo(table_tr_td); var table_tr_td_lywrap_title = my_title(tt).appendTo(table_tr_td_lywrap); my_lyct(message).appendTo(table_tr_td_lywrap); my_close().appendTo(table_tr_td_lywrap_title); win.removeClass('z-display').addClass('m-layer z-show'); $('body').css({overflow: 'hidden'}); }, confirm: function (tt, message, callBack) { // 动态拼接模块 var win = my_window(); var table = my_table().appendTo(win); var table_tr = my_tr().appendTo(table); var table_tr_td = my_td().appendTo(table_tr); var table_tr_td_lywrap = my_lywrap().appendTo(table_tr_td); var table_tr_td_lywrap_title = my_title(tt).appendTo(table_tr_td_lywrap); var table_tr_td_lywrap_lyct = my_lyct(my_content(message)).appendTo(table_tr_td_lywrap); var table_tr_td_lywrap_lybt = my_lybt().appendTo(table_tr_td_lywrap); var table_tr_td_lywrap_lybt_buttonGroup = my_buttonGroup().appendTo(table_tr_td_lywrap_lybt); my_close().appendTo(table_tr_td_lywrap_title); my_ok(callBack).appendTo(table_tr_td_lywrap_lybt_buttonGroup); my_cancel(callBack).appendTo(table_tr_td_lywrap_lybt_buttonGroup); win.removeClass('z-display').addClass('m-layer z-show'); $('body').css({overflow: 'hidden'}); } }; // 类对象的扩展属性 $.messager.defaults = {ok: "Ok", cancel: "Cancel"}; })(jQuery); /** * 调用方法 */ $(function () { $('#alert').click(function () { $.messager.alert("操作提示", "您确定要执行操作吗?"); }); $('#confirm').click(function () { $.messager.confirm("操作提示", "您确定要执行操作吗?", function (data) { if (data) { alert("确定"); } else { alert("取消"); } }); }); });
相关文章推荐
- jquery解决插件冲突
- jQuery-1.9.1源码分析系列(十六)ajax——ajax框架
- jQuery-1.9.1源码分析系列(十六)ajax——ajax框架
- jquery遍历表格 每一行 值
- jquery.js 库中的 选择器
- [转]你不需要jQuery
- 利用jQuery及AJAX技术定时更新GridView的某一列数据
- jQuery中cookie插件用法实例分析
- jQuery旋转木马式幻灯片轮播特效
- jQuery实现ajax调用WCF服务的方法(附带demo下载)
- Jquery1.9.1源码分析系列(十五)动画处理之外篇
- jQuery使用$.ajax进行异步刷新的方法(附demo下载)
- jQuery1.9.1源码分析系列(十六)ajax之ajax框架
- 简要了解jQuery移动web开发的响应式布局设计
- jQuery移动web开发之页面跳转和加载外部页面的实现
- 使用jQuery mobile库检测url绝对地址和相对地址的方法
- JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
- jQuery mobile转换url地址及获取url中目录部分的方法
- jQuery mobile类库使用时加载导航历史的方法简介
- 使用jQuery在移动页面上添加按钮和给按钮添加图标