[JQ权威指南]对象级别插件的开发

本文介绍了一个jQuery插件的实现过程,该插件能够为列表中的每一项设置鼠标悬停时的背景颜色,通过简单的配置即可实现列表项获取焦点时的视觉效果增强。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)功能描述
在列表

  • 元素中,鼠标在表项
  • 元素移动时,可以自定义其获取焦点(focus)时的背景颜色,即设置表项
  • 选中的背景色,
    (2)搭建框架
    新建一个JS文件,命名为jquery.lifocuscolor.js,并在文件中使用$.fn.extend()方法完成框架的搭建

/*------------------------------------------------------------/
功能:设置列表中表项获取鼠标焦点时的背景色
参数:li_col【可选】 鼠标所在表项行的背景色
返回:原调用对象
示例:$("ul").focusColor("red");
/------------------------------------------------------------*/
; (function($) {
    $.fn.extend({
        "yourPluginName": function(pram_value) {
            //各种默认属性或参数设置
            this.each(function(){
            })
        }
    })
})(jQuery);

(3)编写代码

; (function($) {
    $.fn.extend({
        "focusColor": function(li_col) {
            var def_col = "#ccc"; //默认获取焦点的色值
            var lst_col = "#fff"; //默认丢失焦点的色值

            //如果设置的颜色不为空,使用设置的颜色,否则为默认色
            li_col = (li_col == undefined) ? def_col : li_col;

            $(this).find("li").each(function() { //遍历表项<li>中的全部元素
                $(this).mouseover(function() { //获取鼠标焦点事件
                    $(this).css("background-color", li_col); //使用设置的颜色
                }).mouseout(function() { //鼠标焦点移出事件
                    $(this).css("background-color", "#fff"); //恢复原来的颜色
                })
            })
            return $(this); //返回jQuery对象,保持链式操作
        }
    });
})(jQuery);

(4)引用插件

<!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>
    <title>编写一个对象级别的插件</title>
    <script type="text/javascript" 
            src="Jscript/jquery-1.4.2-vsdoc.js">
    </script>
    <script type="text/javascript" 
            src="Jscript/jquery-1.4.2.js">
    </script>
    <script type="text/javascript" 
            src="Plugin/jquery.lifocuscolor.js">
    </script>
    <style type="text/css">
           body{font-size:12px}
           .divFrame{width:260px;border:solid 1px #666}
           .divFrame .divTitle{padding:5px;background-color:#eee;font-weight:bold}
           .divFrame .divContent{padding:8px;line-height:1.6em}
           .divFrame .divContent ul{padding:0px;margin:0px;list-style-type:none}
           .divFrame .divContent ul li span{margin-right:20px}
    </style>
    <script type="text/javascript">
        $(function() {
            $("#u1").focusColor("red");//调用自定义的插件
        })
    </script>
</head>
<body>
    <div class="divFrame">
         <div class="divTitle">
              对象级别的插件
         </div>
         <div class="divContent">
              <ul id="u1">
                  <li><span>张三</span><span></span></li>
                  <li><span>李四</span><span></span></li>
                  <li><span>王五</span><span></span></li>
              </ul>
         </div>
     </div>

</body>
</html>

(5)页面效果
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值