jquery-插件-$(this)和this

简单例子:

1、

<html>
<head>
    <title></title>
    <style type="text/css">
        .add {
        background:#ccc;
        }
        .remove {
        background:#fff;


        }
    </style>
<script type="text/javascript" src="js/jq.js"></script>
<script type="text/javascript">
    //编写简单插件
    (function ($) {
        $.fn.myPlugin = function () {  
            this.fadeOut('normal');
        };
        $.fn.myHover = function(){

       return     this.each(function(){       // 为每一个使用本插件的对象都添加hover事件,this是html dom对象,返回html dom element

// return 返回到对象。

                $(this).hover(
                    function () { $(this).addClass("add");},                // $(this) 是jquery对象,返回object
                    function () {$(this).addClass("remove")});
            })
        }
    })(jQuery);
</script>


<script type="text/javascript">
    $(function () {
        $("#btn1").click(function () {  //在点击事件发生时使用插件。
            $("#div1").myPlugin();
        });

        $(".hover").myHover().css("color","green");    // 直接使用,在插件中已经定义了hover事件。

// 因为myHover中已经return,返回到了jquery对象,因此可以实现jquery对象的链式操作。

// 插件应该返回一个JQuery对象,以便保证插件的可链式操作。 

      
    });
</script>
</head>
<body>
<div id="btn1" style="width:100px;height:100px;border:1px solid #000;" class="hover">btn1</div>
    <br />
<div id="div1" style="width:100px;height:100px;border:1px solid #000;" class="hover">div1</div>


</body>
</html>




2、利用var obj = $.extend(default,options)将默认值和传进来的值联合在一起。

<html>
<head>
    <title></title>
    <style type="text/css">
        .add {
        background:#ccc;
        }
        .remove {
        background:#fff;


        }
    </style>
<script type="text/javascript" src="js/jq.js"></script>
<script type="text/javascript">
    //编写简单插件
    (function ($) {
        $.fn.myPlugin = function () {  
            this.fadeOut('normal');
        };
        $.fn.myHover = function (options1,options2) {
            //在插件中定义默认值
            var defaultVal = {
                Text: options1,
                ForeColor: options2
            };



            //利用$.extend()把默认值和插件参数(用户传进来的值)联合在一起
            var obj = $.extend(defaultVal, options1,options2); //定义了一个扩展对象,带有默认值和传进来的值
            // 获取扩展对象的值:obj.Text,obj.ForeColor


           //为每一个使用本插件的对象都添加hover事件,遍历每一个符合指定条件的对象
            return this.each(function () {
                var selObject = $(this);      //获取当前对象
                var oldText = selObject.text();
                var oldColor = selObject.css("color"); //获取当前对象的颜色属性




                selObject.hover(
                    function () {
                        selObject.addClass("add");
                        selObject.text(obj.Text);
                        selObject.css("color", obj.ForeColor);


                    },
                    function () {
                        selObject.addClass("remove");
                        selObject.text(oldText);
                        selObject.css("color", oldColor);


                    });
            })
        }
    })(jQuery);
</script>


<script type="text/javascript">
    $(function () {
        $("#btn1").click(function () {
            $("#div1").myPlugin();
        });
        $(".hover").myHover("xuanze1","blue").css("color",'yellow');
      
    });
</script>
</head>
<body>
<div id="btn1" style="width:100px;height:100px;border:1px solid #000;" class="hover">btn1</div>
    <br />
<div id="div1" style="width:100px;height:100px;border:1px solid #000;" class="hover">div1</div>


</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值