【发布时间】:2018-06-25 12:08:36
【问题描述】:
这是我的脚本代码
class Pop extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
let currDoc = document.currentScript.ownerDocument;
let template = currDoc.querySelector('#pop-up');
let tmplNode = document.importNode(template.content, true);
let shadowRoot = this.createShadowRoot();
shadowRoot.appendChild(tmplNode);
shadowRoot.querySelector("#content").innerHTML = this.innerHTML;
}
}
window.customElements.define("pop-up", Pop);
这是我的模板
<template id="pop-up">
<style>
* {
padding: 0;
margin: 0;
}
.btn {
//styling
}
.btn:hover {
//styling
}
#box{
//styling
display: none;
}
#box h1{
//styling
}
</style>
<div id="box">
<h1> Your Shopping Cart</h1>
<text id="content"> </text>
<button class="btn" onclick="close()"> Close </button>
</div>
</template>
在我的索引文件中我有这个
<button class="btn" onclick="pop()">Show Pop</button>
<pop-up id="pop"> pop-up box</pop-up>
<script>
function pop(){
document.getElementById("pop").style.display = "block";
}
</script>
我正在尝试做一个弹出框。当我单击“显示弹出”按钮时,我想将显示属性从样式更改为从“无”到“块”。但由于某种原因,它不起作用。我是这个影子 dom 元素的新手,我真的无法弄清楚。
【问题讨论】:
-
我忘了说模板和脚本在一个文件中,与索引文件分开
标签: javascript dom shadow