This commit is contained in:
yumoqing 2025-09-12 11:41:59 +08:00
parent 7e10a2e90c
commit 3dd34d606a

View File

@ -22,14 +22,23 @@ event:
domoff: remove from dom domoff: remove from dom
*/ */
bricks.dom_on_off_observer=new MutationObserver((mutations)=>{ bricks.dom_on_off_observer=new MutationObserver((mutations)=>{
function handleRemoved(node) {
if (node.nodeType !== 1) return; // 只处理元素节点
if (node.bricks_widget) {
console.log('**** widget removed', node);
node.bricks_widget.dispatch('domoff');
}
// 遍历后代
for (let child of node.querySelectorAll('*')) {
if (child.bricks_widget) {
console.log('**** widget removed (descendant)', child);
child.bricks_widget.dispatch('domoff');
}
}
}
for (let m of mutations) { for (let m of mutations) {
for (let n of m.removedNodes) { for (let n of m.removedNodes) {
console.log('**** ', m.removedNodes.length, 'nodes removed'); handleRemoved(n);
if (n.bricks_widget){
console.log('**** ', n, 'widget removed');
var w = n.bricks_widget;
w.dispatch('domoff');
}
} }
for (let n of m.addedNodes) { for (let n of m.addedNodes) {
if (n.bricks_widget){ if (n.bricks_widget){