18910140161

JavaScript-将jQuery脚本转换为Plan JS用于引导导航栏下拉在iframe顶部折叠-堆栈溢出

顺晟科技

2022-10-18 14:06:26

154

我正在尝试将jQuery脚本转换为纯JS.这个脚本是为了解决我的网站上的一个问题,我有一个带有下拉菜单的导航栏,在屏幕的其余部分有一个iframe

如果没有此脚本,当单击iframe中的任何位置时,下拉菜单都不会折叠。jQuery可以工作,但我不能只让JS工作,而且我对JS

了解不多。
$(window).on("blur", function() {
  $(".dropdown").removeClass("show"), 
  $(".dropdown-menu").removeClass("show"),
  $(".dropdown-toggle").attr("aria-expanded", !1).focus()
});
window.blur(), 
document.getElementsByClassName('dropdown').classList.remove('show'), 
document.getElementsByClassName('dropdown-menu').classList.remove('show'), 
document.getElementsByClassName('dropdown-toggle').getAttribute("aria-expanded", !1).focus;

顺晟科技:

您没有提供HTML,所以回答这个问题并不容易。

ES6方式

window.onblur = () => {
  const
    removeClass = (el, className) => el.classList.remove(className),
    dropdowns = document.getElementsByClassName('dropdown'),
    menus = document.getElementsByClassName('dropdown-menu'),
    togglers = document.getElementsByClassName('dropdown-toggle')

  for (const d of dropdowns) removeClass(d, 'show')
  for (const m of menus) removeClass(m, 'show')
  for (const t of togglers) t.getAttribute('aria-expanded', false).focus
}
<代码>.下拉菜单{显示:无;}.下拉列表.显示{显示:初始;}.下拉菜单{显示:无;}.下拉菜单.显示{显示:初始;}
<代码><;DIV Class=“下拉切换” aria-expanded=“ true ”>;托格勒<;/DIV>;<;DIV类=“下拉显示”>;<;DIV类=“下拉菜单显示”>;菜单<;/DIV>;<;/DIV>;

老办法

.dropdown {
  display: none;
}

.dropdown.show {
  display: initial;
}

.dropdown-menu {
  display: none;
}

.dropdown-menu.show {
  display: initial;
}
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航