我正在建立一个点击下拉菜单。当点击链接时,下拉列表会下降,然后当触摸掉dropmenu以外的任何内容时,dropmenu会向上滑动。唯一剩下的就是在再次点击链接时使dropmenu向上滑动。我已经在链接中添加了一个.act类,以便我可以从其他链接中单独输出(这样我可以在单击它时隐藏它)但是jquery没有读取这个添加的类。这是我的代码。
function headerNav() {
$('header nav a').bind('click', function(e) {
e.preventDefault();
});
// change
$('header nav a').on('click', function() {
changeNavCont($(this));
});
//show
$('header nav a').on('click', function() {
$('.dropDownMenu').addClass('show');
$(this).addClass('act');
});
//hide
$('header nav a.act').on('click', function() {
$('.dropDownMenu').removeClass('show');
$('header nav a').removeClass('act');
});
$(document).on('click', function(e) {
if (($(e.target).closest('header nav').length === 0)) {
$('.dropDownMenu').removeClass('show');
$('header nav a').removeClass('act');
}
});
}
function changeNavCont($this) {
$('header nav a').removeClass('act');
$this.addClass('act');
var show = $this.attr('href');
$('.dropDownMenu article').removeClass('show');
$('.dropDownMenu article.' + show).addClass('show');
}
答案 0 :(得分:1)
您在show函数中使用了$this
,但在该函数中未定义$ this。您似乎应该使用$(this)
制作它:
//show
$('header nav a').on('click', function() {
$('.dropDownMenu').addClass('show');
$(this).addClass('act');
});