jquery插件制作 提示框插件实现代码


Posted in Javascript onAugust 17, 2012

我们首先来介绍自定义选择器的开发,他的代码结构如下:

(function ($) { 
$.expr[':'].customselector = function (object,index,properties,list) { 
//code 
}; 
})(jQuery);

调用时候的写法:
$(a:customselector)

现在我们先解释下函数中所使用到的各个参数。

object:当前dom元素的引用,而不是jquery对象。需要强调的一点,dom元素和jquery对象完全不是一回事,a标签代表的是dom元素,$('a')代表的是jquery对象,他本身是个js对象。不清楚的朋友情google相关知识。

index:下标为0的数组索引。

properties:选择器元数据数组。

list:dom元素数组。

这些参数中,第一个参数是必须的,其他几个参数是可选的。

选择器函数通过bool值确定是否包含当前元素,true包含,false不包含。

这里我们实现一个a标签的选择器,只选择指向外部链接的a标签,代码如下:

(function ($) { 
$.expr[':'].external = function (object) { 
if ($(object).is('a')) { 
return object.hostname != location.hostname; 
} 
}; 
})(jQuery);

现在我们开始实现提示框插件的开发,开发过程就不多讲了,主要是代码实现,里面有备注说明。
(function ($) {//更新坐标位置 
$.fn.updatePosition = function (event) { 
return this.each(function () { 
$(this).css({ 
left: event.pageX + 20, 
top: event.pageY + 5 
}); 
}); 
} 
//提示框插件,将显示a标签title属性的内容 
$.fn.tooltip = function () { 
return this.each(function () { 
//获取当前对象 
var self = $(this); 
//获取title属性值 
var title = self.attr('title'); 
//判断当前对象是否是a标签,title属性有无内容 
if (self.is('a') && title != '') { 
self.removeAttr('title') 
.hover(function (event) { 
//鼠标在目标对象上 
$('<div id="tooltip"></div>').appendTo('body') 
.text(title) 
.hide() 
.updatePosition(event) 
.fadeIn(400); 
}, function () { 
//鼠标移出 
$('#tooltip').remove(); 
}).mousemove(function (event) { 
//鼠标移动 
$('#tooltip').updatePosition(event); 
}); 
} 
}); 
}; 
})(jQuery);

希望本片文章对你有用,想看完整效果的朋友可以去下demo,下载地址:jQuery.plugin.tooltip
Javascript 相关文章推荐
jquery.lazyload  实现图片延迟加载jquery插件
Feb 06 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
Apr 12 Javascript
jQuery 操作input中radio的技巧
Jul 18 Javascript
AngularJS中$watch和$timeout的使用示例
Sep 20 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
May 14 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
详解vue 数据传递的方法
Apr 19 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 #jQuery
jquery插件制作 表单验证实现代码
Aug 17 #Javascript
jquery插件制作 图片走廊 gallery
Aug 17 #Javascript
jquery插件制作教程 txtHover
Aug 17 #Javascript
IFrame跨域高度自适应实现代码
Aug 16 #Javascript
JSONP 跨域共享信息
Aug 16 #Javascript
js自执行函数的几种不同写法的比较
Aug 16 #Javascript
You might like
一个php作的文本留言本的例子(二)
2006/10/09 PHP
php存储过程调用实例代码
2013/02/03 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
深入php list()函数的详解
2013/06/05 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
简约JS日历控件 实例代码
2013/07/12 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
layui 设置table 行的高度方法
2018/08/17 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
Vue.js实现立体计算器
2020/02/22 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python装饰器decorator介绍
2014/11/21 Python
python负载均衡的简单实现方法
2018/02/04 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python try except finally资源回收的实现
2021/01/25 Python
如何写一份好的自荐信
2014/01/02 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
企业内部培训方案
2014/02/04 职场文书
趣味运动会策划方案
2014/06/02 职场文书
好的促销活动方案
2014/08/21 职场文书
六一亲子活动感想
2015/08/07 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB