【发布时间】:2017-06-03 04:05:55
【问题描述】:
在 shadowDOM 中创建下拉菜单
几乎完美, 但问题是如何在单击窗口中的任何其他位置时隐藏下拉菜单
class NavComponent extends HTMLElement {
constructor() {
super();
let template = document.currentScript.ownerDocument.querySelector('template');
let clone = document.importNode(template.content, true);
let root = this.attachShadow({ mode: 'open' });
root.appendChild(clone);
}
connectedCallback() {
let ddc = this.shadowRoot.querySelectorAll('.dropdowncontainer')
let dd = this.shadowRoot.querySelectorAll('.dropdown');
let ddc_length = ddc.length
for (let index = 0; index < ddc_length; index++) {
ddc[index].addEventListener('click', e => {
dd[index].classList.toggle('show');
});
}
/** have to update the code ............ */
window.onclick = function (event) {
} /** END - have to update the code ............ */
}
}
customElements.define('app-nav', NavComponent)
完整代码请参考demo
【问题讨论】:
标签: javascript drop-down-menu web-component shadow-dom custom-element