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判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
js添加千分位的实现代码(超简单)
Aug 01 Javascript
对js中回调函数的一些看法
Aug 29 Javascript
详解javascript中对数据格式化的思考
Jan 23 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 Javascript
关于微信小程序map组件z-index的层级问题分析
Jul 09 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
用PHP制作静态网站的模板框架(二)
2006/10/09 PHP
php 图片上传类代码
2009/07/17 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
js中的闭包学习心得
2018/02/06 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
Python中正则表达式详解
2017/05/17 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
浅谈python常用程序算法
2019/03/22 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
前台领班岗位职责
2013/12/04 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
春节随笔
2015/08/15 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
python中使用redis用法详解
2022/12/24 Redis