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中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
JavaScript中的cacheStorage使用详解
Jul 29 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
详解angular 中的自定义指令之详解API
Jun 20 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
JavaScript使用localStorage存储数据
Sep 25 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
利用H5api实现时钟的绘制(javascript)
Sep 13 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
基于jquery的cookie的用法
2011/01/10 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
谈谈JS中的!!
2017/12/07 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
简单了解django文件下载方式
2020/02/10 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
美国在线珠宝商店:SZUL
2017/02/11 全球购物
sort命令的作用和用法
2012/11/04 面试题
Java基础知识面试题
2014/03/25 面试题
新书吧创业计划书
2014/01/31 职场文书
西门豹教学反思
2014/02/04 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
纪录片信仰观后感
2015/06/08 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫