Web 开发技术

Dec 19, 2023Web

MutationObserver

MutationObserver 接口提供了监视对 DOM 树所做更改的能力。

监听某个 DOM 属性值的改变:

$(document).ready(function () {
  var observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      if (mutation.attributeName === 'data-value') {
        console.log('Attribute Changed!');
        observer.disconnect();
      }
    });
  });
  observer.observe($('#myDiv')[0], { attributes: true });
});
$(document).ready(function () {
  var observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      if (mutation.attributeName === 'data-value') {
        console.log('Attribute Changed!');
        observer.disconnect();
      }
    });
  });
  observer.observe($('#myDiv')[0], { attributes: true });
});

ResizeObserver

ResizeObserver 接口监视 Element 内容盒或边框盒或者 SVGElement 边界尺寸的变化。

使用:

// 监听
const resizeObserver = new ResizeObserver((entries) => {
    console.log("Size changed");
});
const divElem = document.querySelector("body > div");
resizeObserver.observe(divElem);
// 结束对指定 Element 的监听。
resizeObserver.unobserve(divElem);
// 取消特定观察者目标上所有对 Element 的监听。
resizeObserver.disconnect();
// 监听
const resizeObserver = new ResizeObserver((entries) => {
    console.log("Size changed");
});
const divElem = document.querySelector("body > div");
resizeObserver.observe(divElem);
// 结束对指定 Element 的监听。
resizeObserver.unobserve(divElem);
// 取消特定观察者目标上所有对 Element 的监听。
resizeObserver.disconnect();

json

json 文件里加双引号

使用反斜杠:\"