当前位置: 首页 > news >正文

锋利的jQuery-7--编写插件基础知识

插件的基本要点:

1.命名推荐:jquery.[插件名].js,避免和其他js库插件混淆。

2.对象方法附加到:jQuery.fn上,全局函数附加到:jQuery对象本身。

3.在插件内部,this指向当前通过选择器获取的jQuery对象,非dom对象。

4.如果选择器获取多个元素,可通过this.each遍历。

5.插件应该返回jQuery对象,方便链式操作。

6.避免在插件内部使用$别名,应该用完整的jQuery表示。可利用闭包来避免这个问题。

//为了更好的兼容性,前边加个分号,防止压缩时其他js代码没加分号
;(function($){   //此处将$作为匿名函数的形参传入
    //编写代码
})(jQuery);   //jQuery作为实参传入,就可以在匿名函数内使用$

插件中的闭包理解:

;(function($){
    var foo = 1;  //定义局部变量,仅匿名函数内部可以访问
    var bar = function(){
        /* 在匿名函数内部的函数都能访问foo,即便是在匿名函数的外部调用bar函数的时候,也可以在bar()内部访问到foo,但在匿名函数的外部直接访问foo是做不到的 */
    }    

    /* 下边的函数让匿名函数内部的函数bar()逃逸到全局可访问的范围,这样就可以在匿名函数的外部通过jQuery.BAR()来访问内部定义的函数bar(),并且内部函数bar()也能访问foo变量 */
    $.BAR = bar();
})(jQuery);

 

转载于:https://www.cnblogs.com/leezhxing/p/4076410.html

相关文章:

  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • 【持续跟新】剑指Offer_Java实现
  • js,jq发送短信倒计时
  • Ubuntu软件包管理命令全面集锦
  • 资深项目经理推荐的几款免费/开源项目管理工具
  • Linux上mysql修改密码
  • V4L2视频输入框架概述
  • 20171107--SQL变量,运算符,存储过程
  • 国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
  • 过了半年才写了篇博客,我心情也很悲伤啊,加班加到死,已经浑浑噩噩了
  • bootstrap 的 datetimepicker 结束时间大于开始时间
  • 设计模式之-代理模式
  • 理解MySQL——复制(Replication)
  • 重载与重写
  • jQuery动态生成元素无法绑定事件的解决办法
  • ----------
  • Angular Elements 及其运作原理
  • ES6简单总结(搭配简单的讲解和小案例)
  • JavaScript HTML DOM
  • LeetCode29.两数相除 JavaScript
  • Linux CTF 逆向入门
  • 关于 Cirru Editor 存储格式
  • 开源SQL-on-Hadoop系统一览
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 如何胜任知名企业的商业数据分析师?
  • 以太坊客户端Geth命令参数详解
  • 再谈express与koa的对比
  • 数据可视化之下发图实践
  • (4)STL算法之比较
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (备忘)Java Map 遍历
  • (一)Dubbo快速入门、介绍、使用
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat文件调用java类的main方法
  • .equals()到底是什么意思?
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net 简单实现MD5
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore部署微服务(二)
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net连接MySQL的方法
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [C#C++]类CLASS
  • [DM复习]关联规则挖掘(下)
  • [ES-5.6.12] x-pack ssl
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [ffmpeg] 定制滤波器
  • [GXYCTF2019]BabyUpload1 -- 题目分析与详解