我正在寻找一个DOM事件,该事件可以通过JavaScript进行监听,以了解通过打开选择元素(但未更改任何选项)然后通过单击选择元素(在页面上其他任何地方)将其关闭的情况。这不是blur选择的事件,因为选择保留了焦点。同样,这不是focus一些其他元素或文档或事件mousedown或click窗口,文档或身体。这不是change选择事件,因为选择中的任何选项都没有更改。我不关心旧版Internet Explorer,而只是在符合标准的现代浏览器中可以使用的东西。专有的黑客可能值得一提。我创建了一个JSFiddle来演示该问题:http : //jsfiddle.net/premasagar/FpfnM/在“结果”面板中单击选择框只需单击一下标记为“ HERE”(或其他位置)的文本,然后查看是否将任何事件添加到日志中。最新的Chrome或Firefox中没有任何事件。因此,问题是:可以添加哪种JavaScript,以在单击选择框时记录事件?
3 回答
森栏
TA贡献1810条经验 获得超5个赞
按照您的JSFiddle上的指示,我收到了以下事件:
BODY, mousedown, STRONG
#document, mousedown, STRONG
window, mousedown, STRONG
SELECT, blur, SELECT
BODY, click, STRONG
#document, click, STRONG
window, click, STRONG
这些都是在选择菜单已经聚焦并展开后单击“ HERE”时触发的所有事件。这是最新版本的Chrome。
这些都不满足您的目的吗?
编辑:如果要确保失去焦点的是Select元素,请设置一个全局Javascript变量“ selectFocused”,并将其设置为False。当“选择”菜单获得焦点时将其设置为True,并在发生上述任何事件时将其设置为False。现在,可以在代码中的任何位置使用“ selectFocused”来检测Select元素当前是否具有焦点,并且在更改值时,您知道Select元素已被选中或未选中。
添加回答
举报
0/150
提交
取消