vue2自定义指令实现el-dropdown下拉菜单项最小宽度等于内容宽度

发布时间 2023-10-07 16:44:55作者: Code_Lzh
//在main.js添加
Vue.directive('siem-dropdown', function (el, binding, vNode) {
    let ul = el.querySelector("ul")
    let uid = vNode.componentInstance._uid; // 获取下拉菜单实例的 uid
    let siemDropdownClass = `siem-dropdown-${uid}`;
    ul.classList.add(siemDropdownClass);

    if (el) {
        setTimeout(() => {
                const $dom = document.querySelectorAll(`.${siemDropdownClass}`)[0]; // 获取下拉菜单项浮层元素
                if (el?.offsetWidth) {
                    $dom.style.minWidth = el.offsetWidth + 'px'; // 设置最小宽度为下拉菜单内容宽度
                }
        }, 100);
    }
})