gpt4 book ai didi

javascript - 从自身访问 Web 组件元素

转载 作者:行者123 更新时间:2023-12-03 11:59:43 25 4
gpt4 key购买 nike

刚刚开始使用 Web 组件(普通),我希望用户能够以编程方式在组件上执行操作(例如“向左滑动组件”)。

我在想(如果有更好的方法请纠正我)在组件上调度/触发事件并让组件监听这些事件。

<custom-element>
// ...
</custom-element>

var customElement = document.querySelector('.custom-element');
customElement.dispatchEvent(new Event('slideLeft'));

然后在组件中我需要能够听到这个..但我不知道如何访问 <custom-element>元素在这里。

// Gets a handle to this import doc.
var importDoc = document.currentScript.ownerDocument;

// Creates an object based in the HTML Element prototype.
var element = Object.create(HTMLElement.prototype);

// Fires when an instance of the element is created.
element.createdCallback = function () {
// Create a shadow root.
var shadow = this.createShadowRoot();

// Get a reference to the template.
var template = importDoc.querySelector('#custom-element-tpl');

// Append a deep clone of the template into the shadow.
shadow.appendChild(template.content.cloneNode(true));
};

document.registerElement('custom-element', {
prototype: element
});

谢谢。

最佳答案

好吧,当我想到这一点时,这有点明显,但留在这里供引用:

您可以使用 createdCallback 内的 this 上下文访问当前元素。这就是调用 createShadowRoot 的原因。

// Fires when an instance of the element is created.
element.createdCallback = function () {
// this = <custom-element></custom-element>
this.addEventListener(...);
});

关于javascript - 从自身访问 Web 组件元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com