zoukankan      html  css  js  c++  java
  • 自己动手写一个JQuery插件(第一篇)(转)

    1. 前言

    从现在开始,我们将一步一步学习怎么写一个jQuery插件,编写jQuery插件不是难的事情(当然这取决于你编写的这个插件的复杂程度,比如我们将要写的这些,就是一些很简单的例子),jQuery插件有两种形式.


    $的工具函数
    操作dom包装集合的方法.
    我们这里是针对第二种方式来写一个jQuery高亮的插件-highlight,虽然很简单哈.不过为了显示出我们比较牛逼,我们名字得起得专业一点.

    2. 第一步.让我们的插件更加安全

    (function($){

    //代码都写在这里哈
    })(jQuery)
    上面的这段代码,你可以把他理解成写插件的固定模式.就好像是我们小时候写作文的时候.开头一定是.今天天气很好…我看到了…之类的,然后中间的内容是们需要去填充的东东. 为什么要这么做呢?通俗点说.这样能给我们的插件提供一个更加安全的密封环境.这个就好像一个保护罩一样.避免外部敌人的侵入,在后面,我们将要比较没有保护罩的时候.会出出 现哪些不可预期的后果.

    3. 第二步.扩展JQuery的原型方法

    我们在我们的保护罩里面构建我们的插件的主要结构.

    (function($){
    $.fn.highlight = function(){
    //具体实现
    }
    })(jQuery)

    $.fn这个东西是什么?如果你对js有些了解的话,你应该就认识原型这个东西了.$.fn是$.prototype的别名,他们是同一个,只是名字不一样而已.$.fn.highlight这个就好像说.好吧, 虽然你已经很强大了,可是我还是需要你的身上在搞出点东西来满足我的需求,当你这样做的时候.你会发现你的所有被$包装过的dom对象都会多出一个hihlight方法.用console.dir试试看? 这里我们还要注意一个问题,就是this上下文,就你目前看到的,这个this指向的是包装过的对象集,可是如果你是在each中,也是使用this,那么它指向的却是Dom,接着我们来修改一下这个代码.记不记得你当时喜欢jQuery的原因,链式写法,是的.当时就是这样,上面的代码并不能支持链式写法.所以我们要把代码改成这样


    (function($){
    $.fn.highlight = function(){
    return this//具体实现
    }
    })(jQuery)
    很简单吧,仅仅是多了一个return,可是,就是这个return,让我们的插件也能享受链式操作的好处.

    4. 第三步.完成一个简单的可用插件

    好了,我想我们已经说得太多了,你心里一定在想,靠,这是什么鸟教程啊.到现在都不能搞出一个功能出来.好吧.我们现在马上来把这个东西给搞成可以用的.也就是你的第一个插件


    (function($){
    $.fn.highlight = function(){
    return this.css(background,lightblue);
    }
    })(jQuery)

    这样你的第一个插件就完成了,试试看效果吧,这里我们导入了jQuery库,也导入我们自己的插件.

    现在是不是看到效果了?那些被选中的li都变成了浅蓝色,这就是你的第一个插件,很容易吧.接着我们继续来完善它,首先,这个插件有个缺点.颜色是固定的.只能是浅蓝色,好吧.我们这就给 它一个参数,让它自由的选择颜色


    (function($){
    $.fn.highlight = function(color){
    return this.css("background",color);
    }
    })(jQuery)

    这样我们就可以在调用这个函数的时候传入参数了 $("li").highlight("#FF0000");这样就更加的灵活了

  • 相关阅读:
    DEBIAN下中文显示
    SpringMVC整合Quartz实现定时任务以及Tomcat服务执行初始化定时任务
    SpringMVC 配置定时执行任务
    Mybatis update In
    mybatis在xml文件中处理大于号小于号的方法
    解决Cannot change version of project facet Dynamic web module to 2.5
    android 圆角边框及图片
    Android MotionEvent事件响应机制
    android:configChanges属性
    Android之ScrollView嵌套ListView
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3069084.html
Copyright © 2011-2022 走看看