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 AJAX 调用WebService实现代码
Mar 24 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
js动态修改表格行colspan列跨度的方法
Mar 30 Javascript
javascript中 try catch用法
Aug 16 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
Jun 01 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 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引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
javascript每日必学之继承
2016/02/23 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python 内置函数complex详解
2016/10/23 Python
python读取LMDB中图像的方法
2018/07/02 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
解决yum对python依赖版本问题
2019/07/05 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
仓库组长岗位职责
2014/01/29 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
《称象》教学反思
2014/04/25 职场文书
三好生演讲稿
2014/09/12 职场文书
沈阳故宫导游词
2015/01/31 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
施工现场安全管理制度
2015/08/05 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang