前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jQuery笔记(4)

jQuery笔记(4)

作者头像
y191024
发布2022-09-20 20:27:23
4070
发布2022-09-20 20:27:23
举报
文章被收录于专栏:睡不着所以学编程

jQuery事件

目标:

本文由“壹伴编辑器”提供技术支持

单个事件注册:

element.事件(function( ){ })

其他事件基本和原生一致,比如mouseover/mouseout/blur/focus...

事件处理 on()绑定事件

优势1:

on()方法在匹配元素上绑定一个或多个事件的事件处理函数

语法:

element.on(events, [selector], fn)

  1. events: 一个或多个用空格分割的事件类型,如"click"或"keydown"
  2. selector: 元素的子元素选择器
  3. fn: 回调函数,即绑定在元素身上的侦听函数

这样就可以同时绑定很多个事件了 :-)

如果想要给两个元素对象都绑定同一件事件(前面的是一个对象绑定不同的事件),那我们就可以用下面的方法:

element.on("事件1 事件2", function() {xxx})

on()方法优势2:

可以事件委派操作. 事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素

就算点击每个li元素也会弹出警示框

on()方法优势3:

动态创建的元素,click()没有办法绑定事件,on()可以给动态生成的元素绑定事件

这是旧的方法,我们动态创建了新的元素在下面

可见动态创建的不能绑定事件

这是新的方法:

现在我们做一个简单的案例,之前也做过类似的(留言案例),发布微博案例:

本文由“壹伴编辑器”提供技术支持

事件处理 off()解绑事件

off()方法可以移除通过on()方法添加的事件处理程序

如果有的事件只想触发一次,可以使用one()来绑定事件

本文由“壹伴编辑器”提供技术支持

自动触发事件 trigger()

有些事件希望自动触发,比如轮播图自动播放功能跟点击右侧按钮一致.可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发.

第一种简写形式: element.事件( )

第二种自动触发模式: element.trigger("type")

第三种:element.triggerHandler(type)

只要一刷新页面就会自动触发

那这三种有什么区别呢?

element.triggerHandler()方法可以不触发元素的默认行为

用旧的方法会有默认事件(光标闪烁)

第三种方法:

jQuery事件对象

事件被触发,就会有事件对象的产生

element.on(events, [selector], function(event){ xxx })

将event打印出来看看:

jQuery的其他方法

如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.extend()方法

语法:

$.extend([deep], target, object1, [objectN])

  1. deep: 如果设为true为深拷贝,默认false为浅拷贝
  2. target: 要拷贝的目标对象(拷贝到...)
  3. object1: 待拷贝到对一个对象的对象(被拷贝)
  4. 浅拷贝是把拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
  5. 深拷贝,前面加true,完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象.如果里面有不冲突的属性,会合并在一起.

就是将object的对象拷贝到target里去

(注意: 这个方法会覆盖target原来的数据)

解释一下浅拷贝的地方:

解析深拷贝:

本文由“壹伴编辑器”提供技术支持

jQuery多库共存

jQuery插件

图片懒加载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡不着所以学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档