zoukankan      html  css  js  c++  java
  • 自定义一个jquery插件[鼠标悬浮时候,出现说明label]

    自定义一个jquery插件,一个简单的jquery.js,入门的jquery插件,jquery入门实例,jquery helloworld。

    最近在学习jquery,看了几天,决定做个小东西练练手。入门级的可以看看。

    先看下面这个小东西有什么功能,有模有用。

      功能:当你鼠标悬浮在你的html元素上面的时候,它会显示一个help说明性的label。

      效果图:

          原始:

          

          当你的鼠标悬浮在'单击我吧1'时:

          

          当你的鼠标悬浮在'textbox'时:

          

    看了效果图,若是有兴趣的话,仔细看看代码吧,代码有注释

    html 代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="testLinkJquery.aspx.cs" Inherits="testLinkJquery" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script src="Scripts/a1.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function () {
    $(
    "#d").HelpTextFn({ helpText: 'this link id is d', bgcolor: 'black', ftcolor: 'red', '100px', tempLeft: '15', tempTop: '15' });
    $(
    "#f").HelpTextFn({ helpText: 'this textbox id is f', bgcolor: 'black', ftcolor: 'yellow', '100px', tempLeft: '15', tempTop: '15' });
    })
    </script>
    <style type="text/css">
    a:hover
    {
    color:Red;
    text
    -decoration:underline;
    }
    </style>
    </head>
    <body>
    <a href="http://www.baidu.com" id="d">s单击我吧1</a><br />
    <input type="text" id="f" value="这是一个textbox" /><br />
    </body>
    </html>

    html 代码说明:

      带下划线的是调用jquery插件的传入的参数。

      带有红色的是你自己要注意相匹配的地方

      参数说明:

        shelpText: "default help text",        //你要显示label的文档
                bgcolor: "red",                       //label的背景色
                ftcolor: "yellow",                    //label的前景色
                "200px",                       //label的宽度             
                tempLeft: "15",                       //label相对于鼠标所在位子的left值
                tempTop: "15"                         //label相对于鼠标所在位子的top值

    jquery代码[a1.query]

    a1.query
    /*
    * HelpTextFn
    * Copyright (c) 2011 yongbin zhang
    http://www.cnblogs.com/2814/
    * Date: 2011-6-27
    * 当你鼠标悬浮在你的html元素上面的时候,它会显示一个help说明性的label
    */

    //以下代码不可以改变
    //注释为代码说明
    /*
    想要自己定义一个jquery插件,一般的框架就是:
    (function ($) {
    $.fn.HelpTextFn = function (options) { //要改变的就是HelpTextFn,这是你的jquery函数的名称[在你的html中要调用这个函数的时候就得用到这个名称],
    //其他的就不需要进行改变了。

    var defaults = { //var defaults{ 这里面是你的这个函数的参数的默认值 }
    helpText: "default help text", //你要显示label的文档
    bgcolor: "red", //label的背景色
    ftcolor: "yellow", //label的前景色
    "200px", //label的宽度
    tempLeft: "15", //label相对于鼠标所在位子的left值
    tempTop: "15" //label相对于鼠标所在位子的top值
    }
    var options = $.extend(defaults, options); //这句话是死的,它的意思就是说,若你在html中调用这个插件的时候,若是没有传入参数的值得话,
    //那么我就用defalut里面定义好的参数,否则就用你传入的参数的值,[注意]:下面若是要用到参数的话,
    //就得使用[options.参数名]如:options.helpText

    $(this).mousemove(function (e) { //添加this的mousemove事件,就是说,哪个html元素调用了我的这个插件,那么我就给他添加mousemove事件
    });
    $(this).mouseleave(function () { //添加this的mouseleave事件,就是说,哪个html元素调用了我的这个插件,那么我就给他添加mouseleave事件
    });
    };
    })(jQuery); //这句是固定的
    */

    (function ($) {
    $.fn.HelpTextFn
    = function (options) {//
    var defaults = {
    helpText:
    "default help text",
    bgcolor:
    "red",
    ftcolor:
    "yellow",
    "200px",
    tempLeft:
    "15",
    tempTop:
    "15"
    }
    var options
    = $.extend(defaults, options);
    var linkDivId
    = $(this).attr("id");
    $(
    this).mousemove(function (e) {
    if ($("#linkDiv" + linkDivId)) {
    $(
    "#linkDiv" + linkDivId).remove();
    }
    var xx
    = e.originalEvent.x || e.originalEvent.layerX || 0;
    var yy
    = e.originalEvent.y || e.originalEvent.layerY || 0;
    var left
    = xx + parseInt(options.tempLeft);
    var top
    = yy + parseInt(options.tempTop);
    $(
    "#" + linkDivId).after("<div id='linkDiv" + linkDivId + "' style='background-color:" + options.bgcolor + ";color:" + options.ftcolor + ";" + options.width + ";display:none;top:" + top + "px;left:" + left + "px;position:absolute;float:left'>" + options.helpText + "</div>");
    $(
    "#linkDiv" + linkDivId).show();

    });
    $(
    this).mouseleave(function () {
    $(
    "#linkDiv" + linkDivId).remove();
    });
    };
    })(jQuery);
    寻找21世纪的伯牙
  • 相关阅读:
    记人生第一面之ThoughtWorks面试经历
    2016阿里笔试
    思特沃克学院学习方法总结
    敏捷软件开发
    express
    如何将项目部署到heroku并使用malb数据库
    渐进增强与平稳退化
    what is react?
    什么是Node.js
    面试1(转)
  • 原文地址:https://www.cnblogs.com/2814/p/2091235.html
Copyright © 2011-2022 走看看