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

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>// 监听文档完全解析完毕$(function(){$('a').showlinklocation().css("color",'red');});
</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638433.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动售卖团餐:借助智享直播AI实景无人直播系统,团餐自动售卖,无需人工参与,省时高效。

在科技飞速发展的今天&#xff0c;直播行业迎来了一场前所未有的变革。过去&#xff0c;传统的直播方式需要大量设备和人力投入&#xff0c;然而如今&#xff0c;一款名为"智享直播"的AI实景无人直播系统正以其简单、有趣的特性改变着这一局面。仅仅凭借一部手机&…

vue项目前端axios跨域请求处理问题

在我的服务器里面新建了一个txt文档&#xff0c;但在vue项目里面对这个文档发起请求的时候因为是ip地址请求&#xff0c;跨域请求失败&#xff0c;在配置了vue.config.js的请求代理后得以解决 报错示例&#xff1a; 解决方法&#xff1a; 1、在vue.config.js中配置跨越请求代…

Netty学习——实战篇6 ProtoBuf实战-单类型数据

1 ProtoBuf实战&#xff1a;需求 编程程序&#xff0c;使用ProtoBuf完成如下功能 1、客户端发送一个Student POJO对象到服务器(通过ProtoBuf编码) 2、服务端能接收Student POJO对象&#xff0c;并显示信息(通过ProtoBuf解码) 1.1 编写Student.proto文件 首先在pom.xml中导入pr…

【网络协议】 TCP与UDP协议区别及应用场景深度分析

1. TCP与UDP简介 1.1 TCP 1.1 定义 TCP&#xff08;TransmissionControl Protocol&#xff09;传输控制协议。 是一种可靠的、面向连接的协议&#xff08;eg:打电话&#xff09;、传输效率低全双工通信&#xff08;发送缓存&接收缓存&#xff09;、面向字节流。使用TCP的应…

52-M.2 E Key-WIFIbluetooth模块电路设计

视频链接 M.2 E Key-WIFI & bluetooth 模块电路设计01_哔哩哔哩_bilibili M.2 E Key-WIFI&bluetooth模块电路设计 1、WIFI&bluetooth模块 1.1、WiFi&bluetooth模块&#xff08;京东&#xff09; AX200和9260这两个型号只支持win10 64位的系统! 随着最新的…

基于非线性控制策略的电力电子电路——DC-DC电路的3种滑模控制器【MATLAB/simulink】

第一种&#xff0c;滞环滑模控制器Buck电路 在滑模控制系统中&#xff0c;采用滞环技术&#xff0c;直接将切换函数转换成开关控制信号&#xff0c;滞环技术被看做一种降低系统结构的切换频率的调制方法&#xff0c;业界也把基于滞环滑模技术实现的滑模控制称为直接滑模控制技…

# 从浅入深 学习 SpringCloud 微服务架构(二)模拟微服务环境(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;二&#xff09;模拟微服务环境&#xff08;1&#xff09; 段子手168 1、打开 idea 创建父工程 创建 artifactId 名为 spring_cloud_demo 的 maven 工程。 --> idea --> File --> New --> Project --> Ma…

基于MNIST的手写数字识别

上次我们基于CIFAR-10训练一个图像分类器&#xff0c;梳理了一下训练模型的全过程&#xff0c;并且对卷积神经网络有了一定的理解&#xff0c;我们再在GPU上搭建一个手写的数字识别cnn网络&#xff0c;加深巩固一下 步骤 加载数据集定义神经网络定义损失函数训练网络测试网络 …

Android 性能优化之黑科技开道(二)

3. 其它可以黑科技优化的方向 3.1 核心线程绑定大核 3.1.1 定义 核心线程绑定大核的思路也很容易理解&#xff0c;现在的 CPU 都是多核的&#xff0c;大核的频率比小核要高不少&#xff0c;如果我们的核心线程固定运行在大核上&#xff0c;那么应用性能自然会有所提升。 核…

new[]与delete[]

&#xff08;要理解之前关于new,delete的一些概念&#xff0c;看​​​​​​ CSDN&#xff09; 引子&#xff1a; 相比new&#xff0c;new[]不仅仅是个数的增加&#xff0c;还有int大小记录空间的创建&#xff0c; 下图中错误的用模拟多个new来替代new[]&#xff0c;释放步…

Git 原理及使用 (带动图演示)

文章目录 &#x1f308; Ⅰ Git 安装&#x1f319; 01. Linux - centos &#x1f308; Ⅱ Git 工作区、暂存区和版本库&#x1f319; 01. 认识工作区、暂存区和版本库&#x1f319; 02. 使用 Git 管理工作区的文件 &#x1f308; Ⅲ Git 基本操作&#x1f319; 01. 创建本地仓库…

Java客户端如何直接调用es的API

Java客户端如何直接调用es的API 一. 问题二. withJson 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 问题 今天做项目的时候&#xff0c;想要直接通过java客户端调用es的api…