Runtime API / Method

NodeScriptContext.delegate

按精确节点名把事件代理给动态后代,非冒泡事件使用稳定祖先捕获。

使用说明

Runtime 在每次事件发生时重新执行节点名查询,并把所有当前匹配与 canonical composedPath() 比较。variant 切换后目标暂时不存在是正常的空匹配;重复同名节点不会让同一次事件重复调用 handler。

ctx.delegate('click', { name: 'tag-close-icon' }, event => {
ctx.emit('onClose', { targetNodeId: event.target });
});

用户脚本不应为此读取包围盒、pick color、clone id 或手工遍历父链。省略 scope 时限制在当前脚本边界,只有明确需要时才扩大到当前 Instance 的 'global' 范围。

pointerenter/leave、focus/blur 等非冒泡事件不会退化为一次性元素绑定。Runtime 在稳定祖先的捕获阶段代理,并在事件到达时匹配当前 canonical 路径,所以 variant 替换目标元素后监听仍然有效。只有必须保持直接监听语义时才改用会自动重绑的 ctx.onChild()。

参数

eventK
queryNodeScriptEventDelegate
handler{ ... }
optionsEventListenerOptions