作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将一个新类附加到 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");
})
});
最佳答案
I want to accomplish that another click on "a.header-login" deletes the container ".sub-menu". Now, it is always generated when you click "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();
}
})
});
也就是说,如果您始终在页面的 HTML 中包含 .sub-menu
但默认情况下使用 CSS 隐藏它,则可以使这个逻辑更加简单。在这种情况下,您的 jQuery 将变成对 toggle()
的简单调用:
jQuery(function() {
$('a.header-login').click(function() {
$('header .header-r .sub-menu').toggle();
})
});
关于javascript - 如何将 .toggleClass() 与 .appendTo() 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343025/
我是一名优秀的程序员,十分优秀!