Firefox:HTML select / options触发的不需要的点击事件

时间:2017-01-23 17:46:15

标签: javascript jquery html forms firefox

我有一个select元素,option个可供选择。选择option会触发回调(在我的真实项目中,它是一个在页面上创建新元素并使用ajax调用将内容加载到其中的函数)。我可以通过select的{​​{1}}事件处理程序或change s'option事件处理程序在Firefox中执行此操作(请参阅下面的代码)。除了选择一个选项并单击它之外,这一切都可以完美地运行。

当您通过点击外部click离开时,问题就开始了。例如,如果您通过单击打开下拉列表,然后使用键盘上的箭头单步执行某些select,则在option外单击会生成select(这很好) )和select.change事件(由于没有人点击option.click,因此不太好。)我仍然可以(尽管这个手势意味着放弃元素而不是选择一个选项),但当你实际点击也会触发事件的东西时(在现实生活中,例如,在页面上创建或销毁元素) ,它会产生一团糟。

说到下面的示例代码,我想要实现的是,通过一次点击,optiondiv成为option ,而且两者都没有。 (我不关心click。)

我已经尝试了select.change的{​​{1}}和blur事件的抓取和取消绑定,但无济于事。

当用户只是放弃focusout时,如何阻止Firefox触发select

打开选择,使用键盘上的箭头移动,然后单击div(“单击此div”)会在JS控制台上生成以下输出:

option.click

我正在使用Firefox 50.1。 jQuery 1.4.2由我要使用的门户提供。

代码:

select
select was changed
option1 was clicked
div was clicked

1 个答案:

答案 0 :(得分:0)

OPTION标签上的

onclick事件将在大多数IE,Safari和Chrome版本上失败:reference