我創建了一個非常簡單的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