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 相关文章推荐
取得父标签
Nov 14 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
深入理解Javascript中this的作用域
Aug 12 Javascript
javascript实现数组去重的多种方法
Mar 14 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
Nov 07 Javascript
jQuery实现大图轮播
Feb 13 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
Aug 26 Javascript
JavaScript实现简单的音乐播放器
Aug 14 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
一个SQL管理员的web接口
2006/10/09 PHP
function.inc.php超越php
2006/12/09 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
如何在Python中编写并发程序
2016/02/27 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
会计出纳岗位职责
2013/12/25 职场文书
python全面解析接口返回数据
2022/02/12 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
KVM基础命令详解
2022/04/30 Servers