关闭HTML select元素时是否会触发DOM事件?

我正在寻找一个DOM事件,该事件可以通过JavaScript进行监听,以了解通过打开选择元素(但未更改任何选项)然后通过单击选择元素(在页面上其他任何地方)将其关闭的情况。


这不是blur选择的事件,因为选择保留了焦点。同样,这不是focus一些其他元素或文档或事件mousedown或click窗口,文档或身体。


这不是change选择事件,因为选择中的任何选项都没有更改。


我不关心旧版Internet Explorer,而只是在符合标准的现代浏览器中可以使用的东西。专有的黑客可能值得一提。


我创建了一个JSFiddle来演示该问题:http : //jsfiddle.net/premasagar/FpfnM/


在“结果”面板中单击选择框

只需单击一下标记为“ HERE”(或其他位置)的文本,然后查看是否将任何事件添加到日志中。最新的Chrome或Firefox中没有任何事件。

因此,问题是:可以添加哪种JavaScript,以在单击选择框时记录事件?


拉风的咖菲猫
浏览 715回答 3
3回答

森栏

按照您的JSFiddle上的指示,我收到了以下事件:BODY, mousedown, STRONG#document, mousedown, STRONGwindow, mousedown, STRONGSELECT, blur, SELECTBODY, click, STRONG#document, click, STRONGwindow, click, STRONG这些都是在选择菜单已经聚焦并展开后单击“ HERE”时触发的所有事件。这是最新版本的Chrome。这些都不满足您的目的吗?编辑:如果要确保失去焦点的是Select元素,请设置一个全局Javascript变量“ selectFocused”,并将其设置为False。当“选择”菜单获得焦点时将其设置为True,并在发生上述任何事件时将其设置为False。现在,可以在代码中的任何位置使用“ selectFocused”来检测Select元素当前是否具有焦点,并且在更改值时,您知道Select元素已被选中或未选中。
打开App,查看更多内容
随时随地看视频慕课网APP