我创建了一个非常简单的jQuery“下拉列表”,它由两个div元素组成。单击第一个div时,会显示第二个div。现在我想要再次关闭第二个div,当我在该div外部单击时。但我不能(其实不想,如果它不是必需的)用下述证件或身体的事件监听器是这样的:在没有文档/ body-event-listener的情况下单击外部隐藏元素
$('#div2').click(function(e) {
doSomething();
e.stopPropagation();
});
$(document).click(function() {
$("#div2").hide();
});
原因:我有一个使用页面上的其他元素e.stopPropagation();
,如果用户在打开下拉列表后点击了这些元素,它将不会再次关闭。
我发现这个插件jALDropdown,即使我点击e.stopPropagation();
,甚至在页面或浏览器之外的某个地方,也可以通过某种方式处理以关闭下拉列表,并且它似乎没有使用任何文档/ body-event-听众:http://india.assigninfo.com/assignlabs/jaldropdown
不幸的是,它不与Opera合作,所以我不能使用它。而且我没有找到未被最小化的源代码版本,因此我无法了解它的工作原理。
如果我点击元素,页面甚至浏览器之外,而没有文档/ body-event-listener,你是否有任何想法来实现这种行为,以便下拉关闭(元素被隐藏)?谢谢!
是的,这可以很容易地完成。 Lemme抓住了我为自己编写和使用的一些实用方法。 – 2012-03-31 22:48:29