- 浏览: 890668 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blackanger.blog.51cto.com/140924/132338
|
如何创建一个jQuery插件
为什么要创建jQuery插件 ? 因为这样代码可以复用。
我们有这样一个页面,页面上面有如下的文字(看源码),我们想要的效果是,当鼠标移到链接的时候,用一个浮动的div来显示a标签的title内容.
这是通过js来完成的。假设有一个方法tooltip(), 你只需要调用这个方法就能达成你的愿望,就像这样:
$('a.tooltip').tooltip({
rounded: true
});
假设我们把插件命名为tooltip,则需要定义一个jQuery.tooltip.js文件。这样命名只是为了说明这是jQuery的插件,实际上你可以随便命名这个文件名。下面来开始写我们的插件:
(function($){
# ...code
})(jQuery);
插件的代码必须包含在这个格式里。这里要注意,要确保你没有使用别的js库,否则这个美元符$,会发生冲突,如果要避免产生这种冲突,你最好在插件里都使用jQuery字符来代替美元符。
我们首先来定义插件函数:
$.fn.tooltip = function(options) {
...
}
然后设置默认的参数:
var
defaults = {
background : '#e3e3e3',
color : 'black',
rounded: false
},
然后再用setting变量来接收用户自定义的参数,使用extend方法来merge这些参数。
settings = $.extend({}, defaults, options);
现在要开始写方法了,用户如果使用这个插件的时候,传入的jquery dom对象可能不只是一个元素,我们需要给每个class为tooltip的a标签都绑定好这个事件,那么就需要迭代了,这里jquery提供了each方法:
this.each(function() {
var $this = $(this);
var title = this.title;
... ...
}
这里为什么要用$this呢? 这是为了提醒自己,正在和jQuery对象打交道。
然后写鼠标事件等等,来看最后的代码:
(function($){
$.fn.tooltip = function(options) {
var
defaults = {
background: '#e3e3e3',
color: 'black',
rounded: false
},
settings = $.extend({}, defaults, options);
this.each(function() {
var $this = $(this);
var title = this.title;
if($this.is('a') && $this.attr('title') != '') {
this.title = '';
$this.hover(function(e) {
// mouse over
$('
')
.appendTo('body')
.text(title)
.hide()
.css({
backgroundColor: settings.background,
color: settings.color,
top: e.pageY + 10,
left: e.pageX + 20
})
.fadeIn(350);
if(settings.rounded) {
$('#tooltip').addClass('rounded');
}
}, function() {
// mouse out
$('#tooltip').remove();
});
}
$this.mousemove(function(e) {
$('#tooltip').css({
top: e.pageY + 10,
left: e.pageX + 20
});
});
});
// returns the jQuery object to allow for chainability.
return this;
}
})(jQuery);
总结:
1. 这里有个小技巧,假如要定义多个变量:
var a = {};
var b = {};
var c = {};
可以这么写:
var
a = {},
b = {},
c = {};
2.插件代码里,循环内的this, 循环外的this,循环内的$(this)的关系, 实际上是jQuery对象和dom对象的关系。
页面上调用插件方法,插件方法内部的each外的this,则是jQuery对象,这个对象是个集合对象,也就是$('a.tooltip')这个对象,页面上共有2个class为tooltip的a标签。
jquery对象的$方法,返回的是jquery集合对象,里面的元素,如果你用get方法去调用得到的是dom,你用eq方法调用得到的是jquery对象,比如:
$('a').eq(0)得到的是jquery对象
$('a').get(0)得到的是dom对象,
直接$('a')[0]得到的是dom对象,
而jquery的each方法,我认为是迭代的是dom对象,而不是jquery对象,所以在each里面this是dom对象,而需要$(this)来得到jquery对象来进行操作 。把这个关系搞清楚就行了。
本文出自 “{ :Alex Space => " Ruby Notes " }” 博客,请务必保留此出处http://blackanger.blog.51cto.com/140924/132338 本文出自 51CTO.COM技术博客 |
发表评论
文章已被作者锁定,不允许评论。
-
[转载]jquery中的一个小TIPS:鼠标移动到连接时发出声音
2012-06-05 16:24 923这个TIPS其实很简单的,实现的效果是:当鼠标移动到链接上时, ... -
gson入门示例
2011-03-07 23:29 2312项目介绍:GSON Gson是Google的一个开源项目,可以 ... -
google gson学习
2011-03-07 23:23 23291.简单的处理list和map Java代码 ... -
jquery ajax中各个事件执行顺序如下
2011-03-01 11:53 2575jquery中各个事件执行顺序如下:1.ajaxStart(全 ... -
eclipse 安装插件spket
2011-01-30 11:23 1561(一下文章摘自博客园htt ... -
jQuery性能优化指南(1)
2010-11-17 20:00 957jQuery性能优化指南(1) ... -
分步提交表单解决方案
2010-10-13 16:54 1681以前只听过有这个东东,现如今自己也要做这个了,做之前也有所耳闻 ... -
ajax乱码解决
2010-09-14 23:42 1053由于ajax数据发送数据编码方式为UTF-8,所以在发送传送汉 ... -
jQuery:如何在页面和插件代码中自定义别名
2010-09-01 18:18 883众所周知,jQuery是采 ... -
插件前的分号
2010-09-01 18:13 1095在我阅读国外的开发人员编写的插件时,发现很多的插件都会在代码的 ... -
jQuery select 无法设置selected属性。未指明的错误
2010-09-01 14:16 2346来自于:http://ycq.ngwz.com/redirec ... -
jQuery-DOM对象和jQuery对象及转换
2010-08-31 11:11 831刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对 ... -
JSON VS XML
2010-08-31 11:09 879·可读性 JSON和XML的可读性可谓不相上下,一边是建议的 ... -
新消息闪烁标题提示代码分享[转]
2010-08-17 16:41 888本文纯粹是贴出一些比较实用的代码出来供大家学习和使用,也算是个 ... -
jQuery:揭露jQuery的隐藏功能
2010-08-17 16:38 1065jQuery并不像他表面显示的那样,只有那些额定的方法供我们使 ... -
jQuery:通过事件委派一次绑定多种事件,以减少事件冗余
2010-08-17 16:34 982jQuery的最大特色之一就是方法连缀写法,这样的书写方式使得 ... -
jQuery:如何在页面和插件代码中自定义别名
2010-08-17 16:26 779众所周知,jQuery是采 ...
相关推荐
jQuery插件通常由开发者社区创建并开源,以满足不同项目的需求,如动画效果、表单验证、图像滑动、轮播图、数据可视化等。 jQuery的核心功能包括选择器(用于选取DOM元素)、DOM操作(添加、删除、修改元素)、事件...
在实际应用中,你还可以自定义清理规则,比如保留特定标签、删除特定属性,或者根据需求调整清理策略。通过深入学习源代码,你可以了解如何扩展和定制这个插件,以满足特定项目的需求。 总结来说,这个“好用清除...
以"jquery插件库-jquery抽奖插件"为例,这个插件可能包含一个旋转盘的HTML结构,结合CSS3的transform属性实现3D旋转效果。JavaScript部分则通过jQuery选择器获取元素,设置动画时间和旋转角度,然后绑定click事件,...
总的来说,jquery插件开发是一个非常强大且灵活的过程,通过灵活使用$.extend()、$.fn以及$.widget()等方法,我们可以轻松地扩展或者创建新的jQuery功能或者部件。只要我们能够掌握这些方法,相信一定能够有效地提升...
《jQuery插件开发详解》 在Web开发领域,jQuery是一个广泛应用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作等任务。jQuery插件是jQuery生态系统的重要组成部分,它们扩展了jQuery的核心...
通过这样的结构,我们可以创建一个易于使用且功能强大的jQuery插件,用户只需一行代码就能在页面上添加一个数字时钟: ```javascript $('.clock').digitclock(); ``` 总的来说,学习jQuery插件开发有助于提升...
首先,jQuery插件是jQuery库的扩展,由社区开发者创建,用于解决特定问题或提供特定功能。这些插件可以是表单验证、图片轮播、下拉菜单、日期选择器、滚动效果、弹出窗口、数据表格等。了解这些插件能够帮助开发者...
这个“Jquery插件学习”资料是针对初学者的一个入门实例,旨在帮助理解如何使用和创建jQuery插件。 首先,jQuery插件是扩展jQuery功能的一种方式,它们通常包含了对DOM元素的操作、复杂的效果实现或特定的事件处理...
在IT行业中,jQuery是一个非常流行的...在项目中引入合适的jQuery插件,不仅可以提高开发效率,还能让网页或应用具备更丰富的功能和更好的用户体验。当然,在使用过程中,确保插件的兼容性和性能优化也是至关重要的。
《jQuery插件详解及其在web前端开发中的应用》 jQuery,作为一款强大的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理以及动画制作等任务,是web前端开发中不可或缺的工具。尤其对于初学者和经验丰富的...
jQuery-QueryBuilder, 提供一个接口来创建复杂查询的jQuery插件 QueryBuilder 提供一个简单接口来创建复杂查询的jQuery插件。 文档http://querybuilder.js.org安装手动下载最新版本。带 Bower的$ bower ins
通过学习和使用JQuery插件,开发者可以快速实现各种动态效果,同时还能复用代码,减少工作量。这个提供的插件源码可能包含了一些高级的动画效果或者独特的交互设计,对于学习和提升JQuery技能非常有帮助。
总的来说,文档强调了创建jQuery插件时的几个关键实践,包括如何封装插件代码、处理`this`关键字的作用域、保持链式调用、以及如何处理默认值和配置选项等。这些都是开发者在进行jQuery插件开发时应该掌握的基础知识...
本文将详细介绍"50个精彩jQuery插件案例"所涵盖的知识点,帮助你实现更加精彩的页面效果。 1. **jQuery插件的原理**:jQuery插件是基于jQuery核心功能扩展的功能模块,通过$.fn.extend()方法,将新方法添加到jQuery...
时间轴jQuery插件是一种网页开发工具,用于在网站上创建美观、交互性强的时间线布局,展示事件或数据按时间顺序排列的信息。jQuery是JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务,使得...
当你调用一个jQuery插件时,实际上是调用了jQuery对象上的方法,这样就可以对选中的DOM元素进行操作。 ```javascript (function($){ $.fn.myPlugin = function(options) { // 插件的实现代码 }; })(jQuery); ```...
至此,你已经掌握了创建基本jQuery插件的技巧。通过这个基础,你可以构建更复杂的插件,实现更多自定义功能,比如动画效果、数据处理、交互逻辑等。在开发过程中,遵循jQuery的最佳实践,保持代码简洁和可维护性,你...
**通用JQuery插件开发详解** 在Web开发领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件...理解并掌握这些基础知识,能够帮助我们创建出高效、可维护的jQuery插件,提升Web应用的用户体验。