【发布时间】:2018-06-18 18:17:31
【问题描述】:
我想在不使用 event.stopPropagation() 的情况下通过单击菜单外部(包括打开菜单的链接)来关闭菜单。
jQuery
$('a').click(function() {
if ($(this).next().is(':visible')) $(this).next().hide();
else $(this).next().show();
});
$(document).click(function(e) {
if ($(e.target).is('a, ul')) return false;
else $('ul').hide();
});
CSS
td { padding:20px; }
ul { display:none; position:absolute; background:yellow; padding:10px; }
HTML
<table>
<tr>
<td><a href="#">show</a><ul>list 1</ul></td>
<td><a href="#">show</a><ul>list 2</ul></td>
<td><a href="#">show</a><ul>list 3</ul></td>
</tr>
</table>
此代码的唯一问题是,当我单击打开另一个菜单时,其他菜单仍保持打开状态。
【问题讨论】:
标签: jquery