前端工程化02-复习jQuery当中的插件开发

ops/2024/9/25 3:29:55/

2、jQuery插件开发

在我们开发的时候、有时候jQuery提供的方法并不能满足我们的需求,如果我们想给jQuery扩展一些其他的方法,那这种情况下,可能会需要写一个插件

jQurey官网:jquery.com

image-20240421014214384

例如一些、图片懒加载插件、滚动的插件、响应式的插件、ui插件,很多很多。

那我们自己怎么编写一个插件,一般面试会问,有没有手写过一些插件?比如javaScript的一些库,有没有造过轮子等

jQuery插件其实就是:编写一些新的方法,并将这些方法,添加到Query的原型上

那我们如何编写插件?

新建一个插件对应的js文件(命名规范:jquery.插件名.js)

在立即执行函数中编写插件,这样可以避免插件中的变量与全局变量冲突。

JQuery的原型对象上新增一些方法。

最后在html中导入就可以像使用其他jQuery对象方法一样使用了

到此就开发完一个jQuery的插件了。

开发一个jquery.showlinklocation.js的插件

这个插件的效果是,为页面上的每个a标签都拼接上他的网址,并设置a标签的颜色为红色

创建一个文件名为jquery.showlinklocation.js

//立即执行函数
;(function(window,$){//在jquery的原型上,我们添加了一个 showlinklocation方法//需要遍历a元素$.fn.showlinklocation=function(){//让他只能是个aconsole.log(this);//jQuery对象//this.filter('a').append('(http://www.baidu.com)')this.filter('a').each(function(index,element){console.log(element);console.log(this,"this也是a");//a转成jq对象var $a=$(this);//这个是函数的this//取jq对象其中的一个属性var link=$a.attr('href');//拼接路径到字的后边this.append(`(${link})`)})//这个this是jq对象return this;}
})(window,window.jQuery)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><a href="https://www.jd.com">京东商城</a>
<a href="https://www.taobao.com">淘宝商城</a>
<a href="https://www.biyao.com">必要商城</a>
<!-- 导入jquery文件 -->
<script src="./js/jquery.js"></script>
<!-- 引入我们的插件 -->
<script src="./utils/jquery.showlinklocation.js"></script>
<script>javascript">// 监听文档完全解析完毕$(function(){$('a').showlinklocation().css("color",'red');});
</script></body>
</html>

http://www.ppmy.cn/ops/8126.html

相关文章

Midjourney 实现角色一致性的新方法

AI 绘画的奇妙之处&#xff0c;实乃令人叹为观止&#xff01;就像大千世界中&#xff0c;寻不见两片完全相同的树叶一般&#xff0c;AI 绘画亦复如是。同一提示之词&#xff0c;竟能催生出千变万化的图像&#xff0c;使得AI所绘之作&#xff0c;宛如自然之物般独特&#xff0c;…

Oracle

文章目录 第一节.Oracle的概述第二节.Oracle的特殊点2.1.查询语法2.2.查询次序2.3.分页查询2.4.序列2.4.1.参数介绍 第一节.Oracle的概述 Oracle Database&#xff0c;又名Oracle RDBMS&#xff0c;或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处…

自建SQL server 服务无法启动,提示评估期已过

问题背景 在服务器内安装的SQL server无法启动&#xff0c;报错提示如下截图&#xff0c;提示错误代码17051&#xff1a; 结合系统日志查看应用程序日志详情提示评估期已过&#xff0c;报错如下 问题原因 出现此报错原因是SQL server 安装时&#xff0c;使用的评估版本&#xf…

JavaCard学习笔记: CAP Component 之 Class Component

文章目录 整体结构tag和size字段signature_pool_length和signature_pooltype_descriptor结构导入类型编码导入项签名示例导入类导入数组导入远程方法 interfaces[]interface_info结构flagsinteface_countsuperinterfacesinterface_name class_info_compact classes[]结构flagsi…

XiaodiSec day036 Learn Note 小迪渗透学习笔记

XiaodiSec day036 Learn Note 小迪渗透学习笔记 记录得比较凌乱&#xff0c;不尽详细 day36 XSS 老 XSS 所适用的环境是 IE 浏览器&#xff0c;早碰不到了 mxss 是比较老的漏洞&#xff0c;适用的环境是老版本的 QQ uxss 早已修复&#xff0c;攻击浏览器 swf 的 xss pdf…

面试十三、malloc 、calloc、realloc以及new的区别

// 1 . 静态内存分配.bss 存储未初始化的全局变量和静态变量&#xff0c;在编译时被分配空间&#xff0c;但不会被初始化。在程序启动时&#xff0c;系统会将.bss段的数据初始化为零或者空值.data (静态数据区) : 存储已经初始化的全局变量和静态变量&#xff08;静态局部和静态…

K8s: 在Pod里面对容器进行配额管理和相关原理

Pod里面对容器进行配额管理 在生产环境中&#xff0c;内存占用通常很大&#xff0c;如果里面有死循环&#xff0c;会导致内存和cpu过大导致影响其他pod运行资源 需要让资源在受控的环境下运行&#xff0c;一般都是加上 resources limits 的配置才能达到最佳实践 默认cpu是0.5…

React - 高级用法

React高级用法 Hooks Reducer useReducer&#xff1a; import React, { useReducer, useState } from react;const initialState { count: 0 };function reducer(state, action) {switch (action.type) {case increment:return { count: state.count 1 }case decrement:re…