我目前正在创建一个有三个菜单选项卡的应用程序,每个选项卡都由带有菜单标题和内容的手风琴表示。当前,当点击标题时,内容div相对于框中的任何内容出现。我想点击每一个菜单标题,并使该菜单的内容div单独出现,触发该特定div的活动状态。
我创建的切换手风琴功能打开了所有的内容窗口。当单击任何菜单标题时,将显示所有内容。
这是我的功能,简化了:
function PlayerApp(props) {
const [setActive, setActiveState] = useState("");
const [setHeight, setHeightState] = useState("0px");
const content = useRef(null);
function toggleAccordion() {
setActiveState(setActive === "" ? "active" : "");
setHeightState(
setActive === "active" ? "0px" : `${content.current.scrollHeight}px`
);
}
return (
<div className="content">
<div className="content-list">
<div ref={content} style={{ maxHeight: `${setHeight}` }} className="accordion__content">
<div className="accordion__text"> text content here </div>
</div>
</div>
<div className="content-list">
<div ref={content} style={{ maxHeight: `${setHeight}` }} className="accordion__content">
<div className="accordion__text"> text here </div>
</div>
</div>
<div className="content-list">
<div ref={content} style={{ maxHeight: `${setHeight}` }} className="accordion__content">
<div className="accordion__text"> text content her </div>
</div>
</div>
<div className="content-title">
<button className={`menu_title1 ${setActive}`} onClick={toggleAccordion}>
<p className="accordion__title">Menu 1:</p>
</button>
</div>
<div className="content-title">
<button className={`menu_title2 ${setActive}`} onClick={toggleAccordion}>
<p className="accordion__title">Menu 2:</p>
</button>
</div>
<div className="content-title">
<button className={`menu_title3 ${setActive}`} onClick={toggleAccordion}>
<p className="accordion__title">Menu 3:</p>
</button>
</div>
</div>
);
}
export default PlayerApp;
尽管我的每个按钮类都有独特的名称,但点击那个类仍然会触发所有这些div的活动状态。
我如何改变我的功能,使点击每个按钮呈现一个独特的响应手风琴窗口?
实际上可以通过创建包含菜单详细信息的数组来清理代码。
const accordionItems = [
{ id: 'menu1', text: 'Menu 1' },
{ id: 'menu2', text: 'Menu 2' },
{ id: 'menu3', text: 'Menu 3' },
];
const [activeItem, setActiveItem] = useState();
html将像
{accordionItems.map((p, index) => {
return (
<div className="content-title">
<button
className={`menu_title1 ` + (activeItem === p.id ? 'active' : '')}
onClick={() => {
setActiveItem(p.id);
}}
>
<p className="accordion__title">{p.text}</p>
</button>
</div>
);
})}
多亏了来自NickFroty的youtube教程,我能够在php中创建一个合适的注册系统,我已经能够将他的代码从mysql转换为mysqli,并且能够在用户注册后通过电子邮件发送激活链接。 下面的代码将在数据库中插入注册详细信息,并在用户注册后将消息和激活链接发送到用户的电子邮件。 但是我现在有个问题。如果我点击链接,它会将用户导航到页面。 我的问题是:在用户点击激活链接后,它如何激活用户的帐户?
我为侧栏导航制作了这种样式 我制作了一个长方体,并使用“变换”将其隐藏在左侧,以获得弯曲的边界效果。 悬停时,激活ect 边框按钮- 有什么东西可以添加到主div中,以同时激活每个子元素中的悬停效果吗? 现在,只有当我将鼠标悬停在每个单独的元素上时,它才会工作。 任何帮助都非常感谢:)
安装帮助 有关安装问题的帮助信息,请访问安装支持中心,网址是 www.adobe.com/go/cs4install_cn。 许可激活 在安装过程中,您的 Adobe 软件会联系 Adobe 以完成许可激活过程。不会传输个人数据。有关产品激活的详细信息,请访问 Adobe 官方网站 www.adobe.com/go/activation_cn。 单用户零售许可激活支持两台计算机。例如,您可以在办公
问题内容: 我在Windows 8上,使用Anaconda 1.7.5 64bit。 我创建了一个新的Anaconda环境 来自。 效果很好(有一个带有新python发行版的文件夹)。康达告诉我输入 激活环境,但是返回: 如何激活环境?我究竟做错了什么? 问题答案: 如果发生这种情况,则需要为您的环境设置PATH(以便从环境和Windows上的Scripts \中获取正确的Python)。 假设您
我试图创建一个激活页面,以便当用户点击他们的激活链接时,它将引导用户到activate.php页面,并显示一条消息,说明阉羊帐户是否激活。 我的问题是,它一直显示消息“代码和用户名不匹配!帐户未激活。”它根本不显示成功消息“帐户已激活”,即使已单击激活链接。 此外,如果识别了正确的用户名和代码,数据库中的“活动”列应该更改为“1”,但它仍然显示“0”,这意味着帐户仍然不活动。 我的问题是,为什么它
我一直在用Spring security尝试不同的东西来学习。我建立了一个具有基本结构的授权,它有“用户”表和“权限”表。因此,我的身份验证提供者如下所示。 通过这种方式,我不会指定查询来获取用户详细信息,因为我使用默认的数据库模式。因此,虽然我没有使用“authorities by username query”属性,但Spring使用的是默认查询(“select username,author