自定义一个jquery插件[鼠标悬浮时候 出现说明label]

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

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

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

  效果图:

      原始:

      

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

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

      

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

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

      

自定义一个jquery插件[鼠标悬浮时候 出现说明label]

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

  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', width: '100px', tempLeft: '15', tempTop: '15' });

  $("#f").HelpTextFn({ helpText: 'this textbox id is f', bgcolor: 'black', ftcolor: 'yellow', width: '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的前景色

  width: "200px", //label的宽度

  tempLeft: "15", //label相对于鼠标所在位子的left值

  tempTop: "15" //label相对于鼠标所在位子的top值

  jquery代码[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的前景色

  width: "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",

  width: "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 + ";width:" + 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);