【发布时间】:2015-10-21 23:43:43
【问题描述】:
我在页眉中有一个非常标准的弹出菜单。规范说用户需要能够以三种方式关闭它:
- 在菜单外点击
- 点击第二次展开的链接(滑动切换)
- 通过在菜单外按标签
我有第一个工作,但我似乎无法弄清楚其他两个。当您再次单击该链接时,它会向上滑动,然后再向下滑动。而且我尝试使用 jquery“focusout”在用户退出时关闭菜单,但没有运气。
这是我的 js:
$("#body").mouseup(function (e) {
var subject = $("#shell-user-account-details");
if (e.target.id != subject.attr('id') && !subject.has(e.target).length) {
subject.hide();
}
$("#shell-user-account-details").attr('aria-hidden', function (i, attr) {
return attr == 'true' ? 'false' : 'true';
}).attr('aria-expanded', function (i, attr) {
return attr == 'false' ? 'true' : 'false';
});
});
$(document).on('click', '#shell-user-account-link', function (event) {
$('#shell-user-account-details').slideToggle().attr('aria-expanded', function (i, attr) {
return attr == 'false' ? 'true' : 'false';
}).attr('aria-hidden', function (i, attr) {
return attr == 'false' ? 'true' : 'false';
})
});
这是一个小提琴:https://jsfiddle.net/tactics/u4quaje0/2/
谢谢。
【问题讨论】:
-
更新:我想出了如何让菜单在第二次点击时关闭。仍然没有弄清楚标签的事情。
标签: jquery slidetoggle jquery-focusout