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 相关文章推荐
Javascript 面向对象 重载
May 13 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
异步加载script的代码
Jan 12 Javascript
javascript实现验证身份证号的有效性并提示
Apr 30 Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 Javascript
js实现人才网站职位选择功能的方法
Aug 14 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
JavaScript操作HTML DOM节点的基础教程
Mar 11 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
Javascript实现秒表倒计时功能
Nov 17 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 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
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
微信小程序 图片上传实例详解
2017/05/05 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
详解React中setState回调函数
2018/06/14 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python可变参数用法实例分析
2017/04/02 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
酒后驾驶检讨书
2014/01/27 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
开会通知
2015/04/20 职场文书
追讨欠款律师函
2015/06/24 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript