Tailwind 点击显示数据

Fay*_*kon 3 javascript css tailwind-css

我在顺风CSS中的悬停上显示子菜单,

我如何通过执行 onclick 事件而不是悬停事件来实现完全相同的功能。

演示版

代码:

<div class="group">
 <span class="font-bold text-gray-700"> Admission</span>
 <div class=" hidden group-hover:block  bg-white  w-auto">
  
<div class="p-3 hover:bg-gray-200 ">
  Admission Process
</div>
<div class="p-3 hover:bg-gray-200"">
  option 1
</div>
<div class="p-3 hover:bg-gray-200"">
  option 2
</div>
 </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法只使用 tailwind css 或 js ?

Adr*_*kot 7

您可以使用 JavaScript 查询下拉列表,然后向click事件添加侦听器。

const dropdownButton = document.querySelector("#dropdown");
const dropdownList = document.querySelector("#dropdown + div.hidden");

dropdownButton.addEventListener("click", () => {
  dropdownList.classList.toggle("hidden");
});
Run Code Online (Sandbox Code Playgroud)
<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet"/>

<div class="group">
 <span class="font-bold text-gray-700" id="dropdown">Admission</span>
 <div class=" hidden group-hover:block  bg-white  w-auto">
  <div class="p-3 hover:bg-gray-200 ">
    Admission Process
  </div>
  <div class="p-3 hover:bg-gray-200">
    option 1
  </div>
  <div class="p-3 hover:bg-gray-200">
    option 2
  </div>
 </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

多个下拉菜单

如果您想为多个下拉菜单使用一个代码,您可以将dropdownid 替换为 css 类,如下所示(我假设每个下拉菜单的结构都是相同的):

<div class="group dropdown">
 <span class="font-bold text-gray-700">Admission</span>
 <div class=" hidden group-hover:block  bg-white  w-auto">
  <div class="p-3 hover:bg-gray-200 ">
    Admission Process
  </div>
  <div class="p-3 hover:bg-gray-200">
    option 1
  </div>
  <div class="p-3 hover:bg-gray-200">
    option 2
  </div>
 </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

然后查询并循环每个下拉列表以添加事件侦听器:

const dropdowns = document.querySelectorAll(".dropdown");

dropdowns.forEach(dropdown => {
  dropdown.querySelector('span').addEventListener("click", () => {
    dropdown.querySelector('span + div').classList.toggle('hidden');
  });
});
Run Code Online (Sandbox Code Playgroud)