javascript - 如何将 .toggleClass() 与 .appendTo() 结合使用?
问题描述
我将一个新类附加到一个 HTML 容器。如何通过单击菜单按钮来打开/关闭此功能?用 JavaScript 编写更复杂的 HTML 代码甚至是“最佳实践”,还是您更喜欢另一种方法?因为我打算为更多的容器做这个。谢谢!
$(document).ready(function() {
$( "a.header-login" ).click(function() {
$("<div class='sub-menu'>" +
"<h2>Hi x!</h2>"+
"<a class='item' href='#'>Logout</a>"+
"</div>")
.appendTo("header .header-r");
})
});
解决方案
我想完成另一个点击“a.header-login”删除容器“.sub-menu”。现在,它总是在您单击“a.header-login”时生成
在这种情况下,您需要添加一个条件来检查该元素是否已经存在。如果它不创建它,如果它确实删除它。
jQuery(function() {
$('a.header-login').click(function() {
var $target = $('header .header-r .sub-menu');
if ($target.length === 0) {
$('<div class="sub-menu"><h2>Hi x!</h2><a class="item" href="#">Logout</a></div>').appendTo('header .header-r');
} else {
$target.remove();
}
})
});
话虽如此,如果您始终.sub-menu
在页面的 HTML 中包含 ,但默认情况下使用 CSS 隐藏它,您可以使这个逻辑更简单。在这种情况下,您的 jQuery 将成为一个简单的调用toggle()
:
jQuery(function() {
$('a.header-login').click(function() {
$('header .header-r .sub-menu').toggle();
})
});
推荐阅读
- php - mysql:命令不同步;您现在无法运行此命令 -> 在 php 函数中运行查询时
- azure-web-app-service - 启用运行状况检查的 Azure Web 应用服务是否会在运行状况不佳的实例上对 CPU 进行横向扩展?
- intellij-idea - 我在使用带有 intellij 的场景生成器时遇到问题
- python - 如何查找numpy数组是否包含沿第三维的向量?
- reactjs - 在 useEffect 中发出调度
- objective-c - 通过 CFMessagePort 的 Cocoa/App Group 进程间通信
- html - 如何使用 nth-child inline 更改行的背景颜色?
- javascript - 如何检查电子邮件是否在 Firebase 中验证?
- powershell - 如何开始?
- r - 直方图未显示在 R 中?特别是查看器平移