Jquery 如何让一个MutationObserver侦听多个元素上的更改?
我已经实现了以下代码来观察课堂上的变化:Jquery 如何让一个MutationObserver侦听多个元素上的更改?,jquery,Jquery,我已经实现了以下代码来观察课堂上的变化: $(document).ready(function () { var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.attributeName === "class") { var attributeValue = $(mutation.target).prop(m
$(document).ready(function () {
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName === "class") {
var attributeValue = $(mutation.target).prop(mutation.attributeName);
console.log("Class attribute changed to:", attributeValue);
}
});
});
observer.observe(document.querySelector(".xxx"), {
attributes: true
}); });
JSIDLE链接:
理想情况下,我希望它能够监听类为“xxx”的所有元素中的更改。但它只听xxx类的第一个元素,而忽略其他元素。如何解决此问题?解决此问题的两种方法: 多个
观察
呼叫
您可以多次调用observe
来查看多个元素:
$(".xxx").each(function() {
observer.observe(this, {
attributes: true
});
});
实例:
$(文档).ready(函数(){
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.attributeName==“class”){
var attributeValue=$(mutation.target).prop(mutation.attributeName);
log(“类属性更改为:”,attributeValue);
}
});
});
$(“.xxx”)。每个(函数(){
观察者,观察(这个{
属性:true
});
});
});
setTimeout(函数(){
$(“.d1”).addClass(“x1”);
}, 800);
setTimeout(函数(){
$(“.d2”).addClass(“x2”);
}, 1600);
setTimeout(函数(){
$(“.d3”).addClass(“x3”);
}, 2400);代码>
解决此问题的两种方法:
多个观察
呼叫
您可以多次调用observe
来查看多个元素:
$(".xxx").each(function() {
observer.observe(this, {
attributes: true
});
});
实例:
$(文档).ready(函数(){
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.attributeName==“class”){
var attributeValue=$(mutation.target).prop(mutation.attributeName);
log(“类属性更改为:”,attributeValue);
}
});
});
$(“.xxx”)。每个(函数(){
观察者,观察(这个{
属性:true
});
});
});
setTimeout(函数(){
$(“.d1”).addClass(“x1”);
}, 800);
setTimeout(函数(){
$(“.d2”).addClass(“x2”);
}, 1600);
setTimeout(函数(){
$(“.d3”).addClass(“x3”);
}, 2400);代码>
对于可运行的示例,请使用现场堆栈片段,而不是场外链接。堆栈代码段是[]
工具栏按钮。对于可运行的示例,请使用现场堆栈片段,而不是场外链接。堆栈代码段是[]
工具栏按钮。非常感谢,第一种方法非常有效!非常感谢,第一种方法非常有效!