jquery插件制作 -- 5.提示框插件

简介:   今天我们介绍的是提示框插件tooltip的制作,其中还会介绍到自定义选择器插件的开发。   我们首先来介绍自定义选择器的开发,他的代码结构如下: (function ($) { $.expr[':'].customselector = function (object,index,properties,list) { //code }; })(jQuery); 调用时候的写法: $(a:customselector)   现在我们先解释下函数中所使用到的各个参数。

  今天我们介绍的是提示框插件tooltip的制作,其中还会介绍到自定义选择器插件的开发。

  我们首先来介绍自定义选择器的开发,他的代码结构如下:

(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.zip

adpics.aspx?source=kbh1983&sourcesuninfo
目录
相关文章
|
12月前
|
JavaScript
Jquery插件知识之Jquery.cookie实现页面传值
Jquery插件知识之Jquery.cookie实现页面传值
56 0
|
JavaScript
jQuery 自定义插件
jQuery 自定义插件
46 0
|
JavaScript
jQuery 插件自用列表
jQuery 插件自用列表
52 0
|
5月前
|
JavaScript
jQuery图片延迟加载插件jQuery.lazyload
jQuery图片延迟加载插件jQuery.lazyload
|
2天前
|
JavaScript 前端开发
jQuery Growl 插件(消息提醒)
jQuery Growl 插件(消息提醒)
11 4
jQuery Growl 插件(消息提醒)
|
4月前
|
设计模式 JavaScript 前端开发
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
46 1
|
4天前
|
存储 JSON JavaScript
jQuery Cookie 插件
jQuery Cookie 插件
14 4
jQuery Cookie 插件
|
1天前
|
JavaScript
jQuery 树型菜单插件(Treeview)
jQuery 树型菜单插件(Treeview)
8 2
|
2月前
|
JavaScript 前端开发 数据安全/隐私保护
Validform jQuery插件详解
【8月更文挑战第21天】
|
4月前
|
JavaScript Perl PHP
一篇文章讲明白jQuery插件之jqueryeditableplugin
一篇文章讲明白jQuery插件之jqueryeditableplugin
27 0