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 相关文章推荐
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
JS实现样式清新的横排下拉菜单效果
Oct 09 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
JavaScript 总结几个提高性能知识点(推荐)
Feb 20 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
Express + Node.js实现登录拦截器的实例代码
Jul 01 Javascript
JavaScript switch语句使用方法简介
Dec 30 Javascript
Javascript组合继承方法代码实例解析
Apr 02 Javascript
JS实现简易贪吃蛇游戏
Aug 24 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
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+MySQL的聊天室设计
2006/10/09 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
js实现图片轮播效果
2015/12/19 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
python第三方库学习笔记
2020/02/07 Python
python绘制动态曲线教程
2020/02/24 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
舞蹈比赛获奖感言
2014/02/04 职场文书
《我的信念》教学反思
2014/02/15 职场文书
网页美工求职信范文
2014/04/17 职场文书
2014全年工作总结
2014/11/27 职场文书
淮海战役观后感
2015/06/11 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python