学习从实践开始之jQuery插件开发 对话框插件开发

合集下载

HTML5-jQuery插件开发的流程

HTML5-jQuery插件开发的流程

jQuery插件开发的流程(你有没有封装过jQuery插件,你怎么实现的)需求:为了在jquery对象的原型上添加一个方法,该方法能实现jquery源码没有实现的功能。

这样,用jquery 选择器选择的dom对象就可以直接调用该方法,实现相应的业务逻辑。

一、外部包裹自运行函数1、首先所有的代码应该用一个自执行函数包裹(为了避免全局变量的污染)2、在自执行函数前最好加一个; ( ! ) (为了和前面加载的js进行分隔,避免出错)3、把window, document , jQuery 这些全局变量传入自运行函数中,使其成为局部变量,从而提高执行速度。

二、构建自定义对象要把插件扩展的方法要完成的业务逻辑以构造函数+原型的方式封装到一个自定义对象中1、把对象需要的属性构建在构造函数中2、把对象需要的方法构建在原型上3、对象要预留接口,允许用户传入自定义的设置(1)this.defauts : 默认设置(2)构造函数允许从外部传入配置opt(3)用$.extend()方法把默认设置和用户自定义设置进行合并(如果用户没有传入相应的配置,则使用默认值,如果传入,则使用用户自定义的值)三、基本自定义对象,实现在jquery的原型上添加新方法1、通过$.fn.myPlugin ,在jquery的原型上添加新方法,这样jquery的所有实例化对象都可以调用该方法,实现自定义对象所构建的功能2、在方法内部:(1)new 出来一个对象的实例化对象,并执行所需的方法(在new的时候,把相应的参数传给构造函数)(2)最后用return 把this返回,从而实现jquery方法的链式调用四、封装后插件的使用(1)先引入jquery.js(2)再引入封装好的jquery插件(3)根据需要,用jquery选择器选择需要实现功能的dom,直接调用插件中的方法。

jQuery 插件开发详解

jQuery 插件开发详解

JavaScript jQuery 插件开发jQuery 插件开发其实很简单jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。

【基础】a)样式很多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说,其实css也就是那么些属性:position,margin,paddi ng,width,height,left,top,float,border,background...UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。

举个简单的例子,一个简单的页面,马虎的人:复制代码代码如下:<html xmlns="/1999/xhtml"><head><title>Test Page</title></head><body>jQuery是一个框架!压缩后有30多k吧。

</body></html>细心的人:复制代码代码如下:<html xmlns="/1999/xhtml"><head><title>Test Page</title><style type="text/css">body{font-family:'宋体';font-size:12px;}</style></head><body>jQuery是一个框架!压缩后有30多k吧。

</body></html>专心的人:[Ctrl+A 全选注:如需引入外部Js需刷新才能执行] 我们对比一下三者的UI效果:一目了然,或许很多的站点失去关注正是因为这不起眼的font-family,font-size。

jQuery插件编写步骤详解

jQuery插件编写步骤详解

jQuery插件编写步骤详解如今做web开发,jquery ⼏乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项⽬⾥了。

⾄于使⽤jquery好处这⾥就不再赘述了,⽤过的都知道。

今天我们来讨论下jquery的插件机制,jquery有着成千上万的第三⽅插件,有时我们写好了⼀个独⽴的功能,也想将其与jquery结合起来,可以⽤jquery链式调⽤,这就要扩展jquery,写成插件形式了,如下⾯就是⼀个简单扩展Jquery对象的demo:1 2 3 4 5 6 7 8 9 10 11//sample:扩展jquery对象的⽅法,bold()⽤于加粗字体。

(function($) {$.fn.extend({"bold": function() {///<summary>/// 加粗字体///</summary>return this.css({ fontWeight: "bold"});}});})(jQuery);调⽤⽅式:这是⼀个⾮常简单的扩展。

接下来我们⼀步步来解析上⾯的代码。

⼀、jquery的插件机制为了⽅便⽤户创建插件,jquery提供了jQuery.extend()和jQuery.fn.extend()⽅法。

1. jQuery.extend() ⽅法有⼀个重载。

jQuery.extend(object) ,⼀个参数的⽤于扩展jQuery类本⾝,也就是⽤来在jQuery类/命名空间上增加新函数,或者叫静态⽅法,例如jQuery内置的 ajax⽅法都是⽤jQuery.ajax()这样调⽤的,有点像 "类名.⽅法名" 静态⽅法的调⽤⽅式。

下⾯我们也来写个jQuery.extend(object)的例⼦:12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19//扩展jQuery对象本⾝jQuery.extend({"minValue": function(a, b) {///<summary>/// ⽐较两个值,返回最⼩值///</summary>return a < b ? a : b;},"maxValue": function(a, b) {///<summary>/// ⽐较两个值,返回最⼤值///</summary>return a > b ? a : b;}});//调⽤var i = 100; j = 101;var min_v = $.minValue(i, j); // min_v 等于 100 var max_v = $.maxValue(i, j); // max_v 等于 101重载版本:jQuery.extend([deep], target, object1, [objectN])⽤⼀个或多个其他对象来扩展⼀个对象,返回被扩展的对象。

jQuery插件开发

jQuery插件开发

jQuery插件开发原文地址: jQuery插件开发关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课。

开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多。

这里我把我自己总结出来的东西分享出来,帮助那些和我一样曾经遇到过同样问题的人。

我要做什么我想要得到的javascript 插件应该会有以下几个特征代码相对独立链式操作插件可配置有可操作的方法,插件的生命周期可控制配置可被缓存可扩展无冲突处理事件代理,动态初始化* 以下的代码均假设存在jQuery插件的第一形态面对这种情况,通常我们会通过定义function的方式来实现。

function pluginName($selector){$.each($selector, function () {$(this).css("background-color", "#ccc");// to do something...});}// pluginName(document.getElementsByClassName("demo"));因为我谈的是jQuery插件开发,那么我现在把这段代码扩展到jQuery上,代码如下:// IIFE(立即调用函数表达式); [参考/blog/1981591/];(function ($) {// 扩展这个方法到jQuery.// $.extend() 是吧方法扩展到$ 对象上,和$.fn.extend 不同。

扩展到$.fn.xxx 上后,// 调用的时候就可以是$(selector).xxx()$.fn.extend({// 插件名字pluginName: function () {// 遍历匹配元素的集合// 注意这里有个"return",作用是把处理后的对象返回,实现链式操作return this.each(function () {// 在这里编写相应的代码进行处理});}});// 传递jQuery到内层作用域去, 如果window,document用的多的话, 也可以在这里传进去.// })(jQuery, window, document, undefined);})(jQuery, undefined);// 调用方式$(".selector").pluginName().otherMethod();但是还差的远,目前只解决了两个问题代码相对独立链式操作插件可配置有可操作的方法,插件的生命周期可控制配置可被缓存可扩展无冲突处理事件代理,动态初始化插件的第二形态现在来给插件添加参数支持。

jquery弹出框插件jquery.ui.dialog用法分析

jquery弹出框插件jquery.ui.dialog用法分析

jquery弹出框插件jquery.ui.dialog⽤法分析本⽂实例讲述了jquery弹出框插件jquery.ui.dialog⽤法。

分享给⼤家供⼤家参考,具体如下:1. jquery.ui.dialog2. ⽂件引⽤要使⽤jquery.ui.dialog,需要引⽤两个⽂件,1个是js,另外1个是css在contentpage中添加:<script type="text/javascript" src="/Content/ui.js"></script>在masterpage中添加:<link href="jquery-ui.css" rel="stylesheet" type="text/css">3. 使⽤⽅法jquery.ui.dialog相⽐thinkbox要有优势,thinkbox是在$.ready中指定的,导致不能灵活的扩展弹出层的弹出时机,针对⼀个逻辑判断,⼀种情况下弹出,另外⼀种不弹出,thinkbox就缺乏应变能⼒,⽽jquery.ui.dialog()采⽤ $('..').dialog(..);的⽅式使得弹出更加灵活1)弹出简单的对话框$("#dialog").dialog();2)弹出模式对话框$("#dialog").dialog({ modal: true });3)弹出模式对话框,并有遮罩效果复制代码代码如下:$("#dialog").dialog({ modal: true, overlay: { opacity: 0.5, background: "black" } });4)带确定与取消按钮复制代码代码如下:$("#dialog").dialog({ buttons: { "Ok": function() { alert("Ok"); }, "Cancel": function() { $(this).dialog("close"); } } });5)如何关闭对话框$("#dialog").dialog("close");<!DOCTYPE html><html><head><link href="/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/><script src="/ajax/libs/jquery/1.5/jquery.min.js"></script><script src="/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script><script>$(document).ready(function() {$("#dialog").dialog();});</script></head><body style="font-size:62.5%;"><div id="dialog" title="Dialog Title">I'm in a dialog</div></body></html><!DOCTYPE html><html><head><link href="/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/><script src="/ajax/libs/jquery/1.5/jquery.min.js"></script><script src="/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script><script>$(document).ready(function() {$("#dialog").dialog();});</script></head><body style="font-size:62.5%;"><div id="dialog" title="Dialog Title">I'm in a dialog</div></body></html>jQuery boxy使⽤该jQuery插件要想使⽤该jQuery插件,需要把$(selector).boxy();放在document.ready中。

jQuery开发基础教程第8章 jQuery UI插件的使用

jQuery开发基础教程第8章  jQuery UI插件的使用

图8-2 Download Builder页面
在Download Builder页面中提供的jQuery UI版本有: jQuery UI 1.11.1:要求jQuery 1.6及以上版本。 jQuery UI 1.10.4:要求jQuery 1.6及以上版本。 jQuery UI 1.9.2:要求jQuery 1.6及以上版本。
<link rel="stylesheet" href="jquery-ui-1.11.1.custom/jquery-ui.css" /> <script src="jquery-ui-1.11.1.custom/external/jquery/jquery.js"></script> <script src="jquery-ui-1.11.1.custom/jquery-ui.js"></script>
说明:jQuery UI 中的一些组件依赖于其他组件,当选中这些组件时,它所依赖的其他组件也 都会自动被选中。 (3)在Download Builder页面的最底部,可以看到一个下拉列表框,列出了一系列为jQuery UI 插件预先设计的主题,您可以从这些提供的主题中选择一个,如图8-3所示。
图8-3 选择jQuery UI主题 (4)单击Download按钮,即可下载选择的jQuery UI。
8.1.3
jQuery UI的使用
jQuery UI 下 载 完 成 后 , 将 得 到 一 个 包 含 所 选 组 件 的 自 定 义 zip 文 件 ( jquery-ui1.11.1.custom.zip),解压该文件,效果如图8-4所示。

jqurey课程设计

jqurey课程设计

jqurey课程设计一、课程目标知识目标:1. 让学生掌握jQuery的基本概念、语法及功能特点,理解其与原生JavaScript的关系。

2. 学会使用jQuery选择器、事件处理、DOM操作等核心功能,能灵活运用解决实际问题。

3. 了解jQuery插件的使用和开发,掌握常见插件的安装和配置。

技能目标:1. 培养学生运用jQuery编写网页动态效果的能力,提高网页开发效率。

2. 培养学生具备独立分析和解决实际问题的能力,能结合具体需求使用jQuery进行编程。

3. 提高学生的团队协作能力,学会在项目中合理分工、协同开发。

情感态度价值观目标:1. 培养学生积极的学习态度,激发对前端开发的兴趣和热情。

2. 培养学生勇于尝试、不断探索的精神,提高面对困难的勇气和毅力。

3. 强调诚信、合作、尊重他人的重要性,培养良好的职业道德和团队精神。

课程性质:本课程为信息技术课程,旨在让学生掌握jQuery这一前端开发工具,提高网页开发效率。

学生特点:学生具备一定的HTML、CSS和JavaScript基础,对前端开发有一定了解,具备基本的编程能力。

教学要求:通过讲解、实践、讨论等多种教学方式,使学生在掌握jQuery基础知识的基础上,能独立完成实际项目开发,提高学生的实际操作能力和团队协作能力。

将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。

二、教学内容1. jQuery概述- 理解jQuery的作用和优势- 掌握jQuery的引入方法2. jQuery选择器- 学习基本选择器、层次选择器、过滤选择器等- 实践使用选择器进行DOM元素操作3. jQuery事件处理- 掌握常见事件类型及使用方法- 学会使用事件绑定和解除绑定4. DOM操作- 学习DOM遍历、查找、创建、删除等操作- 掌握属性操作、样式操作、内容操作等方法5. jQuery动画与特效- 学习基本动画、滑动、淡入淡出等效果- 实践使用动画制作网页动态效果6. jQuery插件- 了解常见jQuery插件的使用和配置- 学习开发简单的jQuery插件7. 项目实践- 结合所学知识,进行团队项目开发- 针对具体需求,选择合适的jQuery功能进行实现教学内容依据课程目标,紧密围绕jQuery的核心功能,按照由浅入深的顺序组织。

JQuery的Alert消息框插件使用介绍

JQuery的Alert消息框插件使用介绍

JQuery的Alert消息框插件使⽤介绍下载JS⽂件引⽤到page中,如下代码:复制代码代码如下:<!-- Dependencies --><script src="/path/to/jquery.js" type="text/javascript"></script><script src="/path/to/jquery.ui.draggable.js" type="text/javascript"></script><!-- Core files --><script src="/path/to/jquery.alerts.js" type="text/javascript"></script><link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" />注意其中draggable是⽤来实现拖拉的,如不需要这个功能不就不⽤引⽤。

在⽬前最近的Jquery1.42下应⽤引⽤:复制代码代码如下:<script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script><script src="Scripts/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script><script src="Scripts/jquery.alerts.js" type="text/javascript"></script><link href="Content/Style/jquery.alerts.css" rel="stylesheet" type="text/css" />主要⽅法有:jAlert(message, [title, callback]) 创建⼀个alertjConfirm(message, [title, callback]) 创建⼀个确认allert,⽀持callbackjPrompt(message, [value, title, callback]) 创建⼀个提⽰框让⽤户输⼊值,⽀持callback如果你有提供可以参下⾯的⽰例Code:复制代码代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Defualt.aspx.cs" Inherits="WebApplication6.Defualt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head id="Head1" runat="server"><title></title><script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script><script src="Scripts/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script><script src="Scripts/jquery.alerts.js" type="text/javascript"></script><link href="Content/Style/jquery.alerts.css" rel="stylesheet" type="text/css" /><script type="text/javascript">$(document).ready(function () {$("#btnAlert").click(function (){ jAlert('Pushed the alert button', 'Alert Dialog'); });$("#btnPrompt").click(function () {jPrompt('Type some value:', '', 'Prompt Dialog', function (typedValue) {if (typedValue) {jAlert('You typed the following ' + typedValue);}});});});</script></head><body><form id="form1" runat="server"><div><input type="button" value="Alert Me" id="btnAlert" /><input type="button" value="Prompt Me" id="btnPrompt" /></div></form></body></html>最后alert效果图:打包下载地址https:///jiaoben/32367.html。

JQuery开发工具和插件

JQuery开发工具和插件

Query开发工具和插件1.Dreamweaver相信大家对Dreamweaver再熟悉不过了,Dreamweaver是建立 Web 站点和应用程序的专业工具。

它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。

从对基于 CSS 的设计的领先支持到手工编码功能,Dreamweaver 提供了专业人员在一个集成、高效的环境中所需的工具。

开发人员可以使用 Dreamweaver 及所选择的服务器技术来创建功能强大的Internet 应用程序,从而使用户能连接到数据库、Web 服务和旧式系统。

如果要使Dreamweaver支持jQuery自动提示代码功能,方法非常简单,我们只需要下载一个插件即可。

在/dreamweaver/jquery下载一个名为jQuery_API.mxp 的插件。

在Dreamweaver中选择:命令→扩展管理→安装扩展→jQuery_API.mxp后,就会自动安装了。

如果效果如图1-18所示,就表明安装成功。

jQuery代码,会发现已经能自动提示了,效果如图1-19所示。

注:(1)如果用户的Dreamweaver没有扩展管理功能,可以去/cn/exchange/下载相应软件即可。

(2)在本书出版之前,此插件自动提示的内容是jQuery1.2.1的API,所以jQuery1.2.1以后新增的方法没有提示。

2.AptanaAptana是一个非常强大、开源和专注于JavaScript的Ajax开发IDE。

它的特性如下所示。

提供JavaScript、JavaScript函数、HTML和CSS语言的Code Assist功能。

显示JavaScript、HTML和CSS的代码结构。

支持JavaScript、HTML和CSS代码提示,包括JavaScript自定函数。

代码语法错误提示。

支持Aptana UI自定义和扩展。

学习从实践开始之jQuery插件开发 对话框插件开发

学习从实践开始之jQuery插件开发 对话框插件开发

之所以写下这篇文章,是想将我的想法分享给大家;对于初学者,我希望他能从这篇文章中获取对他有用的东西,对于经验丰富的开发者,我希望他能指出我的不足,给我更多的意见和建议;目的就是共同进步前言:之所以写下这篇文章,是想将我的想法分享给大家;对于初学者,我希望他能从这篇文章中获取对他有用的东西,对于经验丰富的开发者,我希望他能指出我的不足,给我更多的意见和建议;目的就是共同进步。

一.要做什么插件?我想要实现一个插件可以取代浏览器默认的弹出对话框或窗体,就是我们通过调用wi ndow.alert,window.confirm,window.prompt这些方法所弹出的网页对话框,通过调用w indow.open,window.showModalDialog,window.showModelessDialog 所弹出的窗体。

之所以这样做是因为:浏览器默认的对话框功能简单,不能满足更多需要;用户体验差。

现代浏览器很多都会默认阻止弹出窗体(可能是因为在以前弹出广告太猖獗的原因吧,还记得03,40年那阵,看个XX网站弹了一堆窗口,关都关不过来,浏览器都弄死了,甚至电脑都当机了。

)。

二.想要的效果是什么?关于对话框插件,我们都知道在不同的浏览器里显示样式是有一些分别的,但基本上布局结构都一样。

我们的插件想要的效果是:在任何浏览器里显示的样式和布局结构都保持一致,位于浏览器正中央(这样用户能够第一时间看到)。

弹出窗体在实现上与对话框类似(我是指我们要开发的插件,并非是说浏览器默认的实现)。

三.设计一下功能我们看着图片一步步来说:1、遮挡页面内容(图片上灰色半透明部分),透明度可以设置(不透明0-1完全透明),这样的好处是在用户关闭对话框之前不能对页面进行操作。

2、对话框居中显示,对话框大小可以设置(长宽)。

3、图中(1)和(2)为对话框图标,都可以设置。

4、对话框标题可以内容都可以设置。

5、可以不显示关闭按钮(x)。

插件实习报告

插件实习报告

插件实习报告一、实习背景和目的本次实习是在插件开发公司XYZ进行的,实习时间为2021年6月至8月。

我作为一名计算机专业的学生,选择了这个实习机会,希望能够通过实际操作和实践,提高我的插件开发技能和团队协作能力,同时也为毕业后的就业做好充分的准备。

二、实习过程1. 入职培训在入职当天,我首先接受了公司的入职培训。

培训内容包括公司的发展历程、团队文化、项目流程以及团队各个角色的职责等。

通过这次培训,我明确了自己在实习期间的任务和要求,对公司的整体运作有了更深入的了解。

2. 项目分配根据我的专业背景和个人意愿,我被分配到了一个正在开发中的插件项目中。

该插件旨在提高企业办公效率,包括但不限于日历提醒、文件管理、邮件发送等功能。

我的任务是协助开发团队完成该插件的部分模块开发和测试工作。

3. 需求分析和设计在开始编写代码之前,我和团队成员一起进行了需求分析和设计。

我们与产品经理和UI设计师进行了多次会议,明确了插件的功能需求和界面设计等。

通过需求分析,我更好地了解了用户的需求,并根据需求进行了功能模块的划分和流程设计。

4. 编码和测试在需求分析和设计完成之后,我开始着手进行实际的编码工作。

我主要使用Java语言,并结合一些常用的插件开发框架进行开发。

在编码的过程中,我遵守了公司的编码规范,并与团队成员进行了密切的代码Review,确保代码的质量和可维护性。

完成编码后,我进行了严格的单元测试和功能测试。

通过测试,我发现了一些潜在的bug,并及时进行了修复。

同时,我还利用自动化测试工具对插件进行了性能测试,保证了插件的稳定性和高效性。

5. 项目总结和经验分享在实习期间,我不仅仅是简单地完成了编码和测试工作,还积极参与了团队的每周进展汇报和经验分享会议。

在这些会议中,我与团队成员分享了我遇到的一些问题和解决方法,也从他们那里学到了很多宝贵的经验和技巧。

三、实习收获和感悟通过这次插件实习,我收获了很多实践经验和技能提升。

插件实习报告

插件实习报告

插件实习报告插件实习报告一、实习背景本次实习是在某科技公司进行的插件开发实习。

该公司是一家专注于软件开发的公司,目前正在开发一款新的软件产品,需要开发一些插件来增强软件的功能和用户体验。

我很幸运地得到了这次实习的机会,并且负责了一个插件的开发工作。

二、实习内容1. 插件功能设计插件的功能主要是为了扩展软件的功能,使用户可以在软件中使用一些特定的功能模块。

在实习开始之前,我了解了应用的需求,并与带领我的同事一起进行了功能设计。

我们主要以用户需求为导向,确定了插件的功能设计方案,并制定了开发计划。

2. 插件开发在插件开发阶段,我学习了相关的开发技术和工具,并利用所学的知识开始了插件的开发工作。

具体的工作内容包括:(1)环境搭建:搭建插件开发的环境,包括选择合适的开发工具和框架。

(2)功能实现:根据设计方案,使用相关的编程语言和技术进行插件的开发,实现各项功能。

(3)调试测试:在开发过程中进行逐步调试和测试,确保插件的功能正常运行。

(4)文档编写:编写插件的开发文档,包括插件的设计思路、功能说明和使用方法等。

3. 项目交付在插件开发完成后,我与同事一起进行了最终的测试,并进行了一些功能上的优化调整。

经过多次测试和调试,插件功能正常且稳定,符合设计要求。

最后,我将插件的代码和开发文档整理完善,并将其交付给团队负责人进行最终确认。

经过团队负责人的审核,插件正式交付使用。

三、实习收获1. 技术能力的提升在实习期间,我通过实际的项目开发工作,巩固了自己的编程基础,学习了更多的开发技术和工具。

我学会了如何利用开发工具快速开发插件,并理解了插件的开发流程和规范。

2. 团队合作能力的培养在项目开发过程中,我与同事密切合作,共同解决了许多技术问题。

通过与团队的沟通和协作,我学会了如何与他人合作,如何分工合作,如何有效地解决问题。

3. 解决问题的能力在插件开发过程中,我遇到了一些技术问题和困难,但通过不断的思考和实践,我成功地解决了这些问题。

解读jQuery插件开发流程

解读jQuery插件开发流程

jQuery库中包括很多函数,所以开发插件的时候往往就需要注意命名空间和私有作用域等方面,下面就由Shawn Khameneh老司机带你解读jQuery插件开发流程及相关注意点.jquery插件开发模式jquery插件一般有三种开发方式:通过$.extend()来扩展jQuery通过$.fn 向jQuery添加新的方法通过$.widget()应用jQuery UI的部件工厂方式创建第一种$.extend()相对简单,一般很少能够独立开发复杂插件,第三种是一种高级的开发模式,本文也不做介绍。

第二种则是一般插件开发用到的方式,本文着重讲讲第二种。

插件开发第二种插件开发方式一般是如下定义$.fn.pluginName = function() {&nbsp; //your code here}插件开发,我们一般运用面向对象的思维方式例如定义一个对象var Haorooms= function(el, opt) {&nbsp; this.$element = el,&nbsp; this.defaults = {&nbsp; &nbsp; 'color': 'red',&nbsp; &nbsp; 'fontSize': '12px',&nbsp; &nbsp; 'textDecoration':'none'&nbsp; },&nbsp; this.options = $.extend({}, this.defaults, opt)}//定义haorooms的方法haorooms.prototype = {&nbsp; changecss: function() {&nbsp; &nbsp; return this.$element.css({&nbsp; &nbsp; &nbsp; 'color': this.options.color,&nbsp; &nbsp; &nbsp; 'fontSize': this.options.fontSize,&nbsp; &nbsp; &nbsp; 'textDecoration': this.options.textDecoration&nbsp; &nbsp; });&nbsp; }}$.extend({}, this.defaults, opt)有{}主要是为了创建一个新对象,保留对象的默认值。

jquery实训报告

jquery实训报告

jquery实训报告一、项目背景在计算机科学与技术领域中,前端开发是一个重要的方向之一。

为了提升自己在这一领域的能力,我报名参加了一项jquery实训课程。

本报告旨在总结我在实训期间所学到的内容以及个人的成长与收获。

二、实训目标1. 熟练掌握jquery的基本语法和常用功能;2. 能够应用jquery实现网页效果和交互功能;3. 学会如何与后端进行数据交互,实现动态网页的开发;4. 培养团队合作意识,并在实训项目中展示自己的专业技能。

三、实训内容与方法在jquery实训课程中,我通过理论学习和实践操作相结合的方式来掌握知识和技能。

课程内容主要包括以下几个方面:1. jquery基础知识:学习jquery的安装与引用方式,了解jquery选择器的使用方法,掌握jquery的事件处理、动画效果和DOM操作等基本功能。

2. jquery插件应用:学习jquery插件的使用,如轮播图插件、滚动条插件、图片放大镜插件等,通过实际案例练习,提高实际开发能力。

3. 数据交互与后端对接:学习如何使用jquery实现与后端的数据交互,掌握ajax的基本原理与使用方法,通过与后端工程师的配合,实现动态网页的开发。

4. 团队实训项目:与同学组成小组,共同完成一个小型网页项目。

在项目中,我负责网页的前端开发部分,运用所学的jquery知识,实现了页面的交互效果和数据展示功能。

四、实训成果通过jquery实训课程的学习和实践,我取得了以下成果:1. 熟练掌握了jquery的基本语法和常用功能,能够灵活运用jquery 的选择器、事件处理和动画效果等特性。

2. 能够利用jquery插件快速实现网页效果,如轮播图、滚动条和图片放大镜等,提高了我的开发效率。

3. 学会并应用了ajax技术,实现与后端的数据交互,实现了动态网页的开发。

4. 在团队实训项目中,我与队友紧密合作,充分发挥了我的技能和能力,成功完成了项目的前端开发任务。

jQuery插件开发全解析

jQuery插件开发全解析

jQuery插件开发全解析jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。

jQuery 的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。

下面就两种函数的开发做详细的说明。

1、类级别的插件开发类级别的插件开发最直接的理解就是给jQuery类添加类方法,可以理解为添加静态方法。

典型的例子就是$.AJAX()这个函数,将函数定义于jQuery的命名空间中。

关于类级别的插件开发可以采用如下几种形式进行扩展:1.1 添加一个新的全局函数添加一个全局函数,我们只需如下定义:Java代码1jQuery.foo = function() {2alert('This is a test. This is only a test.');3};1.2 增加多个全局函数添加多个全局函数,可采用如下定义:Java代码4jQuery.foo = function() {5alert('This is a test. This is only a test.');6};7jQuery.bar = function(param) {8alert('This function takes a parameter, which is "' + param + '".');9};10调用时和一个函数的一样的:jQuery.foo();jQuery.bar();或者$.foo();$.bar('bar');1.3 使用jQuery.extend(object);Java代码11jQuery.extend({12foo: function() {13alert('This is a test. This is only a test.');14},15bar: function(param) {16alert('This function takes a parameter, which is "' + param +'".');17}18});1.4 使用命名空间虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。

jquery插件开发方法

jquery插件开发方法

jquery插件开发方法(原创版4篇)《jquery插件开发方法》篇1开发jQuery 插件的方法有很多种,以下是其中一种比较常见的方法:1. 创建一个新的jQuery 插件,可以使用jQuery 的`fn`属性来扩展jQuery 的功能。

例如:```jQuery.fn.extend({pluginName: function() {// 插件代码在这里}});```在上面的代码中,我们使用`jQuery.fn.extend()`方法来扩展jQuery 的`fn`属性,并添加了一个名为`pluginName`的方法。

这个方法就是我们的插件代码。

2. 在HTML 文件中使用该插件,只需要在需要使用插件的地方加上相应的CSS 类或ID 即可。

例如:```<div class="plugin-container">// 插件内容在这里</div>```在上面的代码中,我们定义了一个名为`plugin-container`的CSS 类,并在需要使用插件的地方加上了这个类。

3. 在jQuery 中调用该插件,可以使用`$()`符号来调用jQuery,并使用`pluginName`方法来调用插件。

例如:```$(document).ready(function() {$(".plugin-container").pluginName();});```在上面的代码中,我们在页面加载完成后使用`$()`符号来调用jQuery,并使用`pluginName`方法来调用插件。

这是一种比较简单的jQuery 插件开发方法,实际开发中还需要考虑很多其他的因素,例如插件的选项、事件处理、兼容性等等。

《jquery插件开发方法》篇2开发jQuery 插件的方法有很多种,以下是其中一种比较常见的方法:1. 创建一个新的jQuery 插件,可以使用jQuery 的`fn`属性来实现。

如何开发一个JQuery插件

如何开发一个JQuery插件

JQuery有两种开发插件的方法:jQuery.fn.extend(object);jQuery.extend(object);jQuery.extend(object);方法为扩展jQuery类本身.并为类添加新的方法。

jQuery.fn.extend(object)方法是给jQuery对象添加方法。

jQuery.fn=jQuery.prototype.虽然 javascript没有明确的类的概念,但是用类来理解它,会更方便。

jQuery便是一个封装得非常好的类,比如我们用语句$(“#btn1″) 会生成一个 jQuery类的实例。

jQuery.extend(object);为jQuery类添加添加类方法,可以理解为添加静态方法。

如:$.extend({add:function(a,b){return a+b;}});便为jQuery添加一个为 add的“静态方法”,之后便可以在引入jQuery的地方,使用这个方法了,$.add(3,4); //return 7jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。

jQuery类的实例可以使用这个“成员函数”。

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。

可以这么做:Java代码1. $.fn.extend({2.3. alertWhileClick:function(){4.5. $(this).click(function(){6.7. alert($(this).val());8. });9.10. }11.12. });13.14. $(“#input1″).alertWhileClick(); //页面上为:$.fn.extend({alertWhileClick:function(){$(this).click(function(){alert($(this).val());});}});$(“#input1″).alertWhileClick(); //页面上为:$(“#input1″)为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

jDialog弹出层、对话框、提示框jquery插件

jDialog弹出层、对话框、提示框jquery插件

jDialog弹出层、对话框、提⽰框jquery插件<script>$(function(){$("#test1").click(function(){var dialog = jDialog.alert('欢迎使⽤jDialog组件,我是alert!',{},{showShadow: false,// 不显⽰对话框阴影buttonAlign : 'center',events : {show : function(evt){var dlg = evt.data.dialog;},close : function(evt){var dlg = evt.data.dialog;},enterKey : function(evt){alert('enter key pressed!');},escKey : function(evt){alert('esc key pressed!');evt.data.dialog.close();}}});}) ;$("#test2").click(function(){var dialog = jDialog.confirm('欢迎使⽤jDialog组件,我是confirm!',{handler : function(button,dialog) {alert('你点击了确定!');dialog.close();}},{handler : function(button,dialog) {alert('你点击了取消!');dialog.close();}});});$("#test3").click(function(){// 通过options参数,控制iframe对话框var dialog = jDialog.iframe('/',{title : '代码编辑器 - 聚合分享出品',width : 1100,height : 550});});$("#test4").click(function(){// 通过options参数,控制dialogvar dialog = jDialog.dialog({title : '⾃定义对话框',content : '⼤家好,欢迎访问聚合分享,请⼤家加QQ群:774780837,⼀起交流!'});});$("#test5").click(function(){// 通过options参数,控制dialogvar dialog = jDialog.dialog({title : '⾃定义对话框',content : '⼤家好,我是jDialog.dialog!',buttons : [{type : 'highlight',text : '你好',handler:function(button,dialog){dialog.close();}}]});});$("#test6").click(function(){var dialog = jDialog.message('⼤家好,欢迎访问聚合分享',{ autoClose : 3000, // 3s后⾃动关闭padding : '30px', // 设置内部paddingmodal: true// ⾮模态,即不显⽰遮罩层});});$("#dianZ").click(function(){var dialog = jDialog.tip('⼤家好,欢迎访问聚合分享',{target : $('#dianZ'),position : 'left-top',trianglePosFromStart :0,autoClose : 1000,offset : {top :-20,left:10,right:0,bottom:0}});});});</script>。

编写jquery弹出框插件

编写jquery弹出框插件

编写jquery弹出框插件弹出框插件在web开发中经常用到,下面我就讲解一个box弹出框的制作弹出框插件的制作几个步骤1.配置弹出框信息2.执行默认是否弹出信息3.启动之前设置插件位置4.显示弹出框窗口5.在弹出框窗口绑定事件6.绑定拖拽事件7.绑定关闭事件下面我就用代码来编写这个7个步骤的实现,从而来建立一个弹出框。

1.配置弹出框信息//弹出框基本配置信息和样式var default={boxUrl:"box/", //弹出窗口链接地址opacity:0.5, //背景透明度callBack:null, //是否有回调命令noTitle:false, //是否有标题show:false, //默认是否显示timeout:0 //弹出框消失时间target:null, //目标requestType:null, //设置弹出框请求类型title:"Title", //设置标题名词drag:true, //是否可以拖拽ifreameWH:{ //ifream设置高度和宽度width:400,height:300},html:'' //弹出框内容}//传递参数和默认参数合并this.options = $.extend({},defaults, options);//弹出对话框颜色var boxHtml ='<div id="wBox"><div class="wBox_popup"><table><tbody><tr><td class="wBox_tl"/><td class="wBox_b"/><td class="wBox_tr"/></tr><tr><td class="wBox_b"><div style="width:10px;">&nbsp;</div></td><td><div class="wBox_body">' +(_this.options.noTitle ? '' : '<table class=" wBox_title"><tr><td class="wBox_dragTitle"><div class="wBox_itemTitle">' + _this.option s.title + '</div></td><td width="20px" title="关闭"><div class="wBox_close"></div></td></tr></ta ble> ') +'<div class="wBox_content" id="wBoxContent">< /div></div></td><td class="wBox_b"><div style="width:10p x;">&nbsp;</div></td></tr><tr><td class="wBox_bl"/><td class= "wBox_b"/><td class="wBox_br"/></tr></tbody></table></di v></div>',//背景background = null,//内容content = null,$win = $(window),$_this=this;$this=$(this);2.执行默认是否弹出信息//是否默认弹出$win.resize(function{setPosition();})_this.options.show?_this.showBox():$t.click(function(){_this.showBox();return false;});return this;3.启动之前设置插件位置//设置弹出框的位置function setPosition(){//如果弹出窗口没有内容就可以不设置高度if(!content){return false;}//得到当前DOM节点的高度var width=content.width(),//调整未知lt=calPosition(width);content.css({left:lt[0];top:lt[1]});//得到body的高度var$bheight=$("body").height();//得到window窗口的高度var$wheight=$win.height();//得到html页面的高度$hheight=$("html").height();//得到最大的高度$h=Math.max($hheith,$wheight);//设置背景的高度和宽度background.height($h).width($win.width());}//计算弹出框位置function calPosition(w){l=($win.width()-w)/2;t=$win.scrollTop()+$win.height()/9;return[l,t];}4.显示弹出框窗口this.showBox=function(){//移掉wBox_overlay的DOM节点$("#wBox_ovrlay").remove();//移掉WBox的DOM节点$("#wBox").remove();//将背景先隐藏掉然后添加css并且设置透明度最后加载多body下面//最后出现backgroud=$("<div id='wBox_overlay' class='wBox_hide'> </div>").hide().addClass('wBox_overlayBG').css('opacity',_this.options.opacity).dblclick(function(){_this.close();}).appendTo('body').fadeIn(300);//将内容加入到body里面//注意appendTo的顺序不能先加载内容再加载背景content=$(wBoxHtml).appendTo('body');//绑定点击事件handleClick();}5.在弹出框窗口绑定事件/*** 处理点击* @param {string} what*/function handleClick(){var con = C.find("#wBoxContent");if (_this.YQ.requestType && $.inArray(_this.YQ.r equestType,['iframe', 'ajax','img'])!=-1) {con.html("<div class='wBox_load'><div id='wB ox_loading'><img src='"+_this.YQ.wBoxURL+"loading.gif' /> </div></div>");if (_this.YQ.requestType === "img") {var img = $("<img />");img.attr("src",_this.YQ.target);img.load(function(){img.appendTo(con.empty());setPosition();});}elseif (_this.YQ.requestType === "ajax") {$.get(_this.YQ.target, function(data) {con.html(data);C.find('.wBox_close').click(_this. close);setPosition();})}else{ifr = $("<iframe name='wBoxIframe' sty le='width:"+ _this.YQ.iframeWH.width + "px;height: "+ _this.YQ.iframeWH.height + "px;'scrolling='auto' frameborder='0' src=' "+ _this.YQ.target + "'></iframe>");ifr.appendTo(con.empty());ifr.load(function(){try {$it = $(this).contents();$it.find('.wBox_close').click(_ this.close);fH = $it.height();//iframe heig htfW = $it.width();w = $win;newW = Math.min(w.width() - 40, fW);newH = w.height() - 25 -(_this.YQ.noTitle ? 0 : 30);newH = Math.min(newH, fH);if (!newH)return;var lt = calPosition(newW);C.css({left: lt[0],top: lt[1]});$(this).css({height: newH,width: newW});}catch (e) {}});}}elseif (_this.YQ.target) {$(_this.YQ.target).clone(true).show().app endTo(con.empty());}elseif (_this.YQ.html) {con.html(_this.YQ.html);}else{$t.clone(true).show().appendTo(con.em pty());}afterHandleClick();}/** 处理点击之后的处理*/function afterHandleClick(){setPosition();C.show().find('.wBox_close').click(_this.close). hover(function(){$(this).addClass("on");}, function(){$(this).removeClass("on");});$(document).unbind('keydown.wBox').bind('keydow n.wBox', function(e){if (e.keyCode === 27)_this.close();return true});typeof_this.YQ.callBack === 'function' ? _this. YQ.callBack() : null;!_this.YQ.noTitle&&_this.YQ.drag?drag():null;if(_this.YQ.timeout){setTimeout(_this.close,_this.YQ.timeout);}}6.绑定拖拽事件/** 拖拽函数drag*/function drag(){var dx, dy, moveout;var T = C.find('.wBox_dragTitle').css('cursor', 'move'); T.bind("selectstart", function(){return false;});T.mousedown(function(e){dx = e.clientX - parseInt(C.css("left"));dy = e.clientY - parseInt(C.css("top"));C.mousemove(move).mouseout(out).css('opacity', 0.8); T.mouseup(up);});/** 移动改变生活* @param {Object} e 事件*/function move(e){moveout = false;if (e.clientX - dx < 0) {l = 0;}elseif (e.clientX - dx > $win.width() - C.width()) {l = $win.width() - C.width();}else {l = e.clientX - dx}C.css({left: l,top: e.clientY - dy});}/** 你已经out啦!* @param {Object} e 事件*/function out(e){moveout = true;setTimeout(function(){moveout && up(e);}, 10);}/** 放弃* @param {Object} e事件*/function up(e){C.unbind("mousemove", move).unbind("mouseout", out). css('opacity', 1);T.unbind("mouseup", up);}}7.绑定关闭事件/** 关闭弹出框就是移除还原*/this.close=function(){if (C) {B.remove();C.stop().fadeOut(300, function(){C.remove();})}}。

教你开发jQuery插件(转)

教你开发jQuery插件(转)

教你开发jQuery插件(转)原⽂:要说jQuery 最成功的地⽅,我认为是它的可扩展性吸引了众多开发者为其开发插件,从⽽建⽴起了⼀个⽣态系统。

这好⽐⼤公司们争相做平台⼀样,得平台者得天下。

苹果,微软,⾕歌等巨头,都有各⾃的平台及⽣态圈。

学会使⽤jQuery并不难,因为它简单易学,并且相信你接触jQuery后肯定也使⽤或熟悉了不少其插件。

如果要将能⼒上升⼀个台阶,编写⼀个属于⾃⼰的插件是个不错的选择。

本教程可能不是最精品的,但⼀定是最细致的。

jQuery插件开发模式软件开发过程中是需要⼀定的设计模式来指导开发的,有了模式,我们就能更好地组织我们的代码,并且从这些前⼈总结出来的模式中学到很多好的实践。

根据《jQuery⾼级编程》的描述,jQuery插件开发⽅式主要有三种:1. 通过$.extend()来扩展jQuery2. 通过$.fn 向jQuery添加新的⽅法3. 通过$.widget()应⽤jQuery UI的部件⼯⼚⽅式创建通常我们使⽤第⼆种⽅法来进⾏简单插件开发,说简单是相对于第三种⽅式。

第三种⽅式是⽤来开发更⾼级jQuery部件的,该模式开发出来的部件带有很多jQuery内建的特性,⽐如插件的状态信息⾃动保存,各种关于插件的常⽤⽅法等,⾮常贴⼼,这⾥不细说。

⽽第⼀种⽅式⼜太简单,仅仅是在jQuery命名空间或者理解成jQuery⾝上添加了⼀个静态⽅法⽽以。

所以我们调⽤通过$.extend()添加的函数时直接通过$符号调⽤($.myfunction())⽽不需要选中DOM元素($('#example').myfunction())。

请看下⾯的例⼦。

$.extend({sayHello: function(name) {console.log('Hello,' + (name ? name : 'Dude') + '!');}})$.sayHello(); //调⽤$.sayHello('Wayou'); //带参调⽤运⾏结果:上⾯代码中,通过$.extend()向jQuery添加了⼀个sayHello函数,然后通过$直接调⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

之所以写下这篇文章,是想将我的想法分享给大家;对于初学者,我希望他能从这篇文章中获取对他有用的东西,对于经验丰富的开发者,我希望他能指出我的不足,给我更多的意见和建议;目的就是共同进步前言:之所以写下这篇文章,是想将我的想法分享给大家;对于初学者,我希望他能从这篇文章中获取对他有用的东西,对于经验丰富的开发者,我希望他能指出我的不足,给我更多的意见和建议;目的就是共同进步。

一.要做什么插件?我想要实现一个插件可以取代浏览器默认的弹出对话框或窗体,就是我们通过调用wi ndow.alert,window.confirm,window.prompt这些方法所弹出的网页对话框,通过调用w indow.open,window.showModalDialog,window.showModelessDialog 所弹出的窗体。

之所以这样做是因为:浏览器默认的对话框功能简单,不能满足更多需要;用户体验差。

现代浏览器很多都会默认阻止弹出窗体(可能是因为在以前弹出广告太猖獗的原因吧,还记得03,40年那阵,看个XX网站弹了一堆窗口,关都关不过来,浏览器都弄死了,甚至电脑都当机了。

)。

二.想要的效果是什么?关于对话框插件,我们都知道在不同的浏览器里显示样式是有一些分别的,但基本上布局结构都一样。

我们的插件想要的效果是:在任何浏览器里显示的样式和布局结构都保持一致,位于浏览器正中央(这样用户能够第一时间看到)。

弹出窗体在实现上与对话框类似(我是指我们要开发的插件,并非是说浏览器默认的实现)。

三.设计一下功能我们看着图片一步步来说:1、遮挡页面内容(图片上灰色半透明部分),透明度可以设置(不透明0-1完全透明),这样的好处是在用户关闭对话框之前不能对页面进行操作。

2、对话框居中显示,对话框大小可以设置(长宽)。

3、图中(1)和(2)为对话框图标,都可以设置。

4、对话框标题可以内容都可以设置。

5、可以不显示关闭按钮(x)。

6、底部按钮可以为0个或多个,并且可以为其设置回调函数。

四.如何实现功能?1.使用CSS样式控制外观。

*为了避免CSS命名冲突,我们需要为插件确定一个名字空间,其下所有样式都在该命名空间下。

2.遮挡所有内容*我们在CSS里设置基本样式。

复制代码代码如下:position:absolute;left:0;top:0;background-color:#000;z-index:99999;*这里需要注意的是z-index的值有一个安全范围,来自微软的说明“The maximum value is 2147483647 for IE6, 7 and 8.But it is 16777271 for Safari 3, so a safe cross br owser maximum value is 16777271.”大意是说ie6,7,8支持的最大值是2147483647,但是Safari 3是16777271,所以保险起见不要超过16777271。

*用js代码设置其宽和高,我们通过$(document).width()获取页面宽度,通过$(do cument).height()获取页面高度度。

3.对话框居中显示对于对话框居中显示,有两种方式实现。

一是通过CSS实现。

position:absolute;如果页面有滚动条的时,当滚动条滚动时,对话框也会移动。

position:fixed;比较理想,无论如何滚动,对话框始终停留在页面居中位置,唯一的缺点就是不支持IE6(网上有关于如果兼容IE6的方法,感兴趣的朋友可以自己去实现)。

二是通过js脚本控制。

通过计算页面长宽来定位,当改变页面大小时,对话框位置不会改变,效果不理想。

(当然了,可以通过监听页面发生改变时,自动调整位置,但是实现起来比较麻烦,感兴趣的朋友可以自己去尝试)五.浏览器兼容浏览器兼容什么的最讨厌了,不过话说回来最理想的效果当然是能够兼容所有浏览器,事实上如果我们花更多的时间也确实可以做到兼容所有浏览器。

但是这样做值得吗?如果问页面设计人员最讨厌的浏览器是什么?我想大多数都会回答是IE6,是的,这个曾经风靡全球,霸占全球超过90%用户电脑的浏览器,我们曾经觉得它很好,好吧,也许我该说不错,又或者还可以;不管怎么样,它曾经确实是全球最受欢迎的浏览器。

但是现在,它是我们开发者眼中最不受欢迎的浏览器,在全球平均使用不超过5%的情况下,在天朝却仍然超过2 0%的用户在使用它(来自/的统计),这是为什么呢?同样一个功能如果要做到兼容IE6这些老版本的浏览器,我们大概要多花三分之一甚至更多的时间,生命是短暂的,同志们,为何不把有限的时间拿去做更有意义的事情呢?杀死IE6从我做起!六.功能实现和调用<style type="text/css">/*为了避免命名冲突,我们将该插件所有样式都放在该类之下*/ .ctcx-dialog{font-size:14px;}.ctcx-dialog .mark /*遮罩层样式*/{position:absolute;left:0;top:0;background-color:#000;z-index:99999;}.ctcx-dialog .dialog /*对话框样式*/{position:fixed;left:50%;top:50%;background-color:#FFF;z-index:99999;border:2px solid #000;padding:2px;}.ctcx-dialog .dialog .bar /*对话框标题栏*/{height:30px;background-color:#999;color:#FFF;}.ctcx-dialog .dialog .bar .icon /*对话框标题栏图标*/{width:25px;height:30px;background-repeat:no-repeat;background-position:center;display:inline-block;}.ctcx-dialog .dialog .bar .title /*对话框标题栏标题*/{width:340px;height:30px;line-height:30px;overflow:hidden;display:inline-block;vertical-align:top;font-weight:bold;}.ctcx-dialog .dialog .bar .close /*对话框标题栏关闭按钮*/ {width:20px;height:30px;background-image:url(close.png);background-repeat:no-repeat;background-position:center;display:inline-block;cursor:pointer;}.ctcx-dialog .dialog .container /*对话框内容容器*/{margin-top:5px;overflow:auto;}.ctcx-dialog .dialog .container .icon /*对话框内容容器*/ {background-image:url(icon-big.png);background-repeat:no-repeat;background-position:center;width:48px;height:48px;}.ctcx-dialog .dialog .container .content /*对话框内容容器*/position:relative;}.ctcx-dialog .dialog .buttons /*对话框按钮栏*/{text-align:center;margin-top:5px;height:30px;position:relative;bottom:0px;}.ctcx-dialog .dialog .buttons a /*对话框按钮*/{background-color:#DDD;color:#000;text-decoration: none;display:inline-block;padding:5px;}.ctcx-dialog .dialog .buttons a:hover /*对话框按钮*/{background-color:#333;color:#FFF;}.ctcx-dialog .dialog .buttons a:active /*对话框按钮*/{}</style>JS部分复制代码代码如下:(function ($) {$.alert = function (options) {if (typeof options === 'string') options = { content: options }; var opts = $.extend({}, $.alert.defaults, options);if (opts.content == null || opts.content.length == 0) return this;var me = $('<div></div>').addClass('ctcx-dialog').appendTo(document.body);var doc = $(document);$('<div class="mark"></div>').css({ opacity: opts.opacity }).width(doc.width()).height(do c.height()).appendTo(me);var _dialog_ = $('<div class="dialog"></div>').css({width: opts.width,height: opts.height,marginLeft: 0 - opts.width / 2,marginTop: 0 - opts.height / 2}).appendTo(me);var _bar_ = $('<div class="bar"></div>').appendTo(_dialog_);var _titleWidth_ = opts.width - 0;if (opts.icon != null) {$('<div class="icon"></div>').css('background-image', 'url(' + opts.icon + ')').appendTo (_bar_);_titleWidth_ -= 25;}if (opts.close) _titleWidth_ -= 20;$('<div class="title"></div>').css({ width: _titleWidth_ }).html(opts.title).appendTo(_bar _);if (opts.close) {$('<div class="close"></div>').click(function () {me.remove();}).appendTo(_bar_);}var _containerHeight_ = opts.height - 40;var _container_ = $('<div class="container"></div>').appendTo(_dialog_);var _contentCss_ = {};if (opts.iconBig != null) {$('<div class="icon"></div>').css('background-image', 'url(' + opts.iconBig + ')').append To(_container_);_contentCss_.top = -48;_contentCss_.marginLeft = 48;}var _content_ = $('<div class="content"></div>').css(_contentCss_).html(opts.content). appendTo(_container_);if (opts.buttons != null && opts.buttons.length > 0) {_containerHeight_ -= 30;var _buttons_ = $('<div class="buttons"></div>').appendTo(_dialog_);$.each(opts.buttons, function (i, _button) {$('<a href="javascript:;">' + _button.text + '</a>').click(function () {_button.fn(me);}).appendTo(_buttons_);})}_container_.css({ height: _containerHeight_ });this.close = function () {me.remove();}this.setContent = function (content) {_content_.html(content);}return this;}//设置默认参数$.alert.defaults = {title: '信息提示', //对话框标题content: null, //对话框内容width: 200, //宽height: 100, //高opacity: 0.5, //透明度icon: null, //显示在标题前面的小图标iconBig: null, //显示在内容左侧的大图标buttons: null, //按钮集合[{text:'按钮显示文字',fn:回调函数(event)}],event = {}close: true//是否显示关闭按钮}})(jQuery);调用复制代码代码如下:$.alert({title: '火星向你发出警告', //对话框标题content: '我们是火星人,我们就要入侵地球了,你们准备好了吗?', //对话框内容width: 300, //宽height: 150, //高opacity: 0.5, //透明度icon: 'icon.png', //显示在标题前面的小图标iconBig: 'icon-big.png', //显示在内容左侧的大图标buttons: [{ text: '好怕怕', fn: function () { $.alert('我好怕怕呀')} }], //按钮集合[{text:'按钮显示文字',fn:回调函数(event)}],event = {}close: true//是否显示关闭按钮});。

相关文档
最新文档