我實現了使用HTML,CSS和JavaScript的自定義下拉菜單。它現在運行良好,但我現在對「模糊」的方式並不滿意。當您打開列表,然後單擊其他地方時,它應該崩潰。我所做的是在展開列表之後向window
添加事件偵聽器(mousedown
),並在合攏後刪除偵聽器。該事件基本上使用target
檢查DOM事件是否發生在正確的元素上,如果沒有,則模糊下拉控件。針對HTMLDivElement的焦點和模糊事件?
我知道focus
和blur
。但是,他們似乎只是在表單元素上工作,我覺得這很容易理解。他們還支持其他場景,比如「甩開」。
無論如何,我在問你是否有更好的方式來做我現在正在做的事情。我所做的只是感到愚蠢。
唯一的問題是,如果你點擊實際的下拉列表,它會模糊輸入,並認爲它應該摺疊下拉。或者你的意思是我設置了一個點擊監聽程序,該列表的preventDefault()? – Tower 2010-11-17 17:48:02
是的,這是真的。您可能需要查看模糊的目標是否是控件本身,而不是停止事件。 – 2010-11-17 18:15:03