我在DIV中有一个下拉菜单。
我希望用户单击其他任何位置时下拉菜单都隐藏。
$('div').blur(function() { $(this).hide(); }
不管用。
我知道.blur仅适用<a>于这种情况,但是在这种情况下,最简单的解决方案是什么?
<a>
我认为问题在于div不会触发该onfocusout事件。您需要捕获主体上的单击事件,然后确定目标是否为菜单div。如果不是,则用户单击了其他位置,并且需要隐藏div。
onfocusout
<head> <script> $(document).ready(function(){ $("body").click(function(e) { if(e.target.id !== 'menu'){ $("#menu").hide(); } }); }); </script> <style>#menu { display: none; }</style> </head> <body> <div id="menu_button" onclick="$('#menu').show();">Menu....</div> <div id="menu"> <!-- Menu options here --> </div> <p>Other stuff</p> </body>