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
目录
相关文章
|
6月前
|
JavaScript
Jquery插件知识之Jquery.cookie实现页面传值
Jquery插件知识之Jquery.cookie实现页面传值
36 0
|
7月前
|
JavaScript
jQuery 插件自用列表
jQuery 插件自用列表
29 0
|
3月前
|
JavaScript
jQuery图片延迟加载插件jQuery.lazyload
jQuery图片延迟加载插件jQuery.lazyload
|
3月前
|
JavaScript 数据可视化 前端开发
jQuery-JS插件-第9次课-使用插件让领导对你刮目相看-附案例作业
jQuery-JS插件-第9次课-使用插件让领导对你刮目相看-附案例作业
19 0
|
3月前
|
JavaScript 前端开发
开发jQuery插件这些就够了
开发jQuery插件这些就够了
28 0
|
8月前
|
JavaScript
jQuery编写插件的两种方法
jQuery编写插件的两种方法
57 0
|
4月前
|
JavaScript 前端开发 安全
jQuery 第十一章(表单验证插件推荐)
jQuery 第十一章(表单验证插件推荐)
56 1
|
5月前
|
JavaScript
jQuery年月日(年龄)选择插件
jQuery年月日(年龄)选择插件
28 0
|
5月前
|
前端开发 JavaScript
Jquery前端分页插件pagination同步加载和异步加载
Jquery前端分页插件pagination同步加载和异步加载
44 0
|
5月前
|
JavaScript 前端开发 数据格式
Jquery前端分页插件pagination使用
Jquery前端分页插件pagination使用
64 1