MutationObserver小试牛刀

2024-09-07 09:52

本文主要是介绍MutationObserver小试牛刀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文档

https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserver

简介

MutationObserver 接口提供了监视对 DOM 树所做更改的能力。
MutationObserver() 构造函数——是 MutationObserver 接口内容的一部分——创建并返回一个新的观察器,它会在触发指定 DOM 事件时,调用指定的回调函数。MutationObserver 对 DOM 的观察不会立即启动;而必须先调用 observe() 方法来确定,要监听哪一部分的 DOM 以及要响应哪些更改。

demo

  • 先监听body
  • 如果出现 包含类名 relation-list 的元素,那么取消对body的监控
  • 同时开启对该元素的监控
  • 对该元素监控时,每次更新只关注该元素本身的更新,且只执行一次回调
;(function(){const config = { attributes: false, childList: true, subtree: true }const observeLi = new MutationObserver((mutations)=>{let onece = falsemutations.forEach((mutation)=>{if(!onece && mutation.target.classList.contains('relation-list')){console.log('pxoxq11111: ', mutation)onece = true}})})const observe = new MutationObserver((mutations)=>{let flag = truemutations.forEach((mutation)=>{if(mutation.target.classList.contains('relation-list') && flag){console.log('pxoxq: ', mutation)observe.disconnect()flag = falseobserveLi.observe(mutation.target, config)}})})observe.observe(document.body, config)
})();

这篇关于MutationObserver小试牛刀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144737

相关文章

NodeJs小试牛刀--聊天室搭建

最近研究聊天室功能,准备用nodejs实现。下面是自己的尝试!! nodejs的安装这里就不详细赘述了。 程序创建 引入required模块 var express = require('express');var app = express();var http = require('http').Server(app); 创建监听端口 http.listen(8000, f

iPhone开发之UITableView的小试牛刀 利用MVC模式从plist文件读取数据并字典转模型的格式实现

新建一个具有simple  VIew的工程,并把相关图片拉进资源文件夹 在Supporting  files文件夹下新建work.plist文件,编辑内容如下图: 在工程下新建model文件夹,并在文件夹内新建model类Hero 根据文件的字典属性编辑Hero.h如下: //// Hero.h// 作业整理//// Created by apple on 15/

OrangePi AIpro小试牛刀-目标检测(YoloV5s)

非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器,功耗低至8W 默认AI CPU和Control CPU 比例1:3, 芯片名称 310B1:表示芯片算

记一个MutationObserver的问题

http://www.cnblogs.com/dong-xu/p/7000139.html 看上面这篇文章的时候,看到有个例子是讲MutationObserver的,非常费解,两个元素,一父一子,父元素设置上observer,点击子元素的时候,observer会触发两次,应该是事件冒泡了,没问题,但是对子元素调用click()的时候,父元素的点击回调也照样执行,但是observer只触发了一次,

MutationObserver 监听DOM树变化

1 概述 Mutation observer 是用于代替 Mutation events 作为观察DOM树结构发生变化时,做出相应处理的API。为什么要使用mutation observer 去代替 mutation events 呢,我们先了解一下mutation events Mutation Events Mutation events 是在 DOM3中定义,用于监听DOM树结构变化的

python小试牛刀编写批处理初步

bat越来越觉得不好用,取字符串是非常的麻烦,于是我打算用python开始编写,现在的雏形是这样的. #!/bin/env python#encoding: utf-8#"Non-ASCII character '\xe6' in file"import sysimport osprint("arg length:"+str(len(sys.argv)))# sys.argvfil

Python爬虫小试牛刀

学了几日Python爬虫,做了一个无聊的爬虫。。。 # -*- coding: utf-8 -*-import urllib.requestimport repage = urllib.request.urlopen("https://movie.douban.com/")cnt = page.read().decode("utf-8")#首次过滤name = re.findall(r

Ansible小试牛刀

Ansible 利用ssh通道管理多台主机,以实现批量操作主机的目的,适合运维开发测试使用。 使用步骤如下: 1、安装 yum install python-pip pip install ansible 2、配置ssh免密通道 ssh-keygen 生产公钥、私钥 ssh-copy-id root@192.168.37.122 远程复制公钥 vim ~/.ssh/config Host mk1

Armeria 小试牛刀

HelloService.thrift 定义服务接口 namespace java com.example.thriftservice HelloService {string hello(1:string name)} 使用thrift-0.9.3.exe 工具,命令:thrift-0.9.3 -r --gen java HelloService.thrift 在当前文件

SQL的子查询与JOIN的小试牛刀

//学生表CREATE TABLE student(ID INT PRIMARY KEY,s_name VARCHAR(16) NOT NULL,class_id INT NOT NULL);INSERT INTO student VALUES(1, "qf", 3), (2, "lap", 3), (3, "qfa", 8)//班级表CREATE TABLE class(class