【发布时间】:2019-12-19 19:27:16
【问题描述】:
我有两个组件,一个是父组件,另一个是子组件。现在父母有两个孩子。哪个孩子单击以在其中添加样式,我需要删除其他孩子的样式。所以一次只有一个孩子会保持这种风格。如何做到这一点?
LiveDemo - 点击按钮。我无法将样式移除。
这是我的代码:
class Parent extends HTMLElement {
shadowRoot;
constructor(){
super();
this.shadowRoot = this.attachShadow({mode: 'open'});
}
connectedCallback(){
this.render();
}
render() {
this.shadowRoot.innerHTML = `<div>
<children-holder></children-holder>
<children-holder></children-holder>
<children-holder></children-holder>
</div>`
}
}
customElements.define('parent-holder', Parent);
class Children extends HTMLElement {
shadowRoot;
constructor(){
super()
this.shadowRoot = this.attachShadow({mode: 'open'});
}
connectedCallback(){
this.render();
this.shadowRoot.querySelector('button').addEventListener('click', () => {
this.shadowRoot.querySelector('button').style.border = "";
this.shadowRoot.querySelector('button').style.border = "3px solid red";
})
}
render() {
this.shadowRoot.innerHTML = `
<div><button class="button">Click me!</button></div>`
}
}
customElements.define('children-holder', Children);
【问题讨论】:
-
你能澄清你的问题吗?在现场演示中,当我单击按钮时,它会设置样式。什么按钮会删除它的样式?
-
当你点击一个按钮时,它应该带有红色边框。其他应删除。所以一次只有一个按钮有边框,就是你点击的。
标签: javascript reactjs web-component