为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

我正在寻找一个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元素已被选中或未选中。


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 714 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信