我创建了一个非常简单的 jQuery“下拉列表”,它由两个 div 元素组成。单击第一个 div 时,将显示第二个 div。现在,当我在该 div 外部单击时,我希望再次关闭第二个 div。但是我不能(如果没有必要,实际上也不想)使用这样的文档或正文事件侦听器:
$('#div2').click(function(e) {
doSomething();
e.stopPropagation();
});
$(document).click(function() {
$("#div2").hide();
});
原因:我在页面上使用了其他元素,e.stopPropagation();
如果用户在打开下拉列表后单击这些元素,它不会再次关闭。
我发现这个插件 jALDropdown 以某种方式处理关闭下拉列表,即使我点击e.stopPropagation();
,甚至在页面或浏览器之外的某个地方,它似乎没有使用任何文档/正文事件侦听器:http:/ /india.assigninfo.com/assignlabs/jaldropdown
抱歉,它不适用于 Opera,所以我不能使用它。而且我没有找到未最小化的源代码版本,因此我无法找出它是如何工作的。
如果我在元素、页面甚至浏览器之外单击而没有文档/正文事件侦听器,您是否有任何想法如何归档此行为,以便下拉菜单关闭(元素被隐藏)?谢谢!