我有一个包含“按钮”的水平菜单。点击按钮打开一个子菜单(不需要悬停的开启菜单)。当点击相同的按钮,子菜单是隐藏的,是这样的:我应该隐藏弹出菜单,当用户在它外面点击时
标记
<div class="toolbar">
<div class="popout-wrap">
<div class="button">
</div>
<div class="popout">
blah blah blah
</div>
</div>
<div class="popout-wrap">
<div class="button">
</div>
<div class="popout">
blah blah blah
</div>
</div>
...
jQuery代码
$(".popout-wrap .button").click(function() {
var menu = $(this).siblings(".popout");
if (menu.is(":hidden")) {
$(".popout").not(":hidden").fadeOut("fast");
menu.css("top", -1 * (menu.outerHeight() + 8) + "px");
menu.fadeIn("fast");
} else {
menu.fadeOut("fast");
}
return false;
});
要求用户点击同一个按钮来隐藏其相应的子菜单不是很直观。使其更直观/本能/易于使用的最佳方式是什么?我认为单击文档中的任何位置都会忽略弹出菜单,但不确定是否(i)这是一个好主意(ii)如果是,那么如何实现它。
隐藏在鼠标离开事件是我认为最好的办法。 – KutePHP 2011-04-19 08:59:13