javascript - 自定义元素和 connectedCallback() : wait for parent node to be available before firing a function

标签 javascript dom custom-element

我正在使用非常好的自定义元素。 但是我遇到了一个问题:

connectedCallback() 函数被调用时,节点似乎还没有在 DOM 中的位置,因此我无法访问它的父节点——我需要它们。

class myElement extends HTMLElement{
    constructor() {
        super();
        this.tracklist =    undefined;
    }
    connectedCallback(){
        this.render();
    }
    render(){

        this.tracklist = this.closest('section');

        // following code requires this.tracklist!
        // ...
    }

window.customElements.define('my-element', myElement);

在调用 render() 之前我如何确定父节点是可访问的?

谢谢!

最佳答案

这是一个已知问题:

connectedCallback 意味着您的元素已或未完全解析。
自定义元素缺少 parsedCallback 方法

查看所有答案:

TL;DR;

可接受的方法是延迟渲染方法:

 connectedCallback(){
     setTimeout(this.render);
 }

关于javascript - 自定义元素和 connectedCallback() : wait for parent node to be available before firing a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58354531/

相关文章:

javascript - Jasmine:如何在 ES6 上监视导入的函数/构造函数?

jquery - 与 jQuery 的 .Closest 相反(顶部/最远?)

javascript - 无法使 div/元素在嵌套的 shadowdom 中移动

javascript - 单击 python 中的 javascript 链接?

JavaScript 代码在失去焦点时停止

javascript - 无法在隐藏的输入元素上设置值

javascript - 为什么我的 Shadow dom 会破坏我的自定义元素?

unit-testing - 使用可绑定(bind)和依赖项测试 aurelia customElement

javascript - Bootstrap 3 popover 隐藏内容仍然可以点击

Javascript 嵌入式谷歌地图无法完全加载