Jquery 选择下拉事件处理程序执行点的浏览器差异

Jquery 选择下拉事件处理程序执行点的浏览器差异,jquery,select,option,event-listener,Jquery,Select,Option,Event Listener,我有一个HTML下拉菜单。我有一个jquery.live()“click”事件监听器连接到select元素 在Chrome中,事件似乎在单击某个选项后触发。因此,如果我只单击它一次以删除菜单,则事件尚未触发。我必须单击其中一个选项来触发事件 在Firefox中,当我放下菜单时,事件似乎会触发。我不需要单击某个选项,因为事件已触发 这是我两年来代码中的一个bug。我在一家非常小的商店里工作,避免了修理它,但我最终放大到足够近的地方,近距离地看到了这一点。我在冲突中,因为我觉得这似乎是一个差异,但我

我有一个HTML下拉菜单。我有一个jquery
.live()
“click”事件监听器连接到select元素

在Chrome中,事件似乎在单击某个选项后触发。因此,如果我只单击它一次以删除菜单,则事件尚未触发。我必须单击其中一个选项来触发事件

在Firefox中,当我放下菜单时,事件似乎会触发。我不需要单击某个选项,因为事件已触发

这是我两年来代码中的一个bug。我在一家非常小的商店里工作,避免了修理它,但我最终放大到足够近的地方,近距离地看到了这一点。我在冲突中,因为我觉得这似乎是一个差异,但我有足够的经验,知道有可能是我不明白的东西

编辑:添加一些代码。我无法添加整个页面

<td class="action">
  <select id="action_x1" class="action_selector"> 
    <option value="one">one</option>
    <option value="two">two</option>
  </select><button id="action_x1">commit</button>
</td>

我妻子最终发现了这一点


我需要绑定到的事件是“聚焦”,而不是“单击”。

您可以发布代码示例吗?既然这已经存在了两年,我假设您也在使用较旧版本的jQuery,是吗?升级到较新版本的jQuery。在('change',[…]上使用
。这应该可以解决问题。选择一个值后,所有浏览器中都会触发该事件。我使用的是jquery 1.7.1。我已经尝试过升级。我将尝试更新的版本。编辑:1.8.1会产生相同的结果。1.9.1及以上版本会破坏我的代码,因此我必须研究如何修补它,以试验新的和更新的版本。问题with.on('change'))我需要在下拉菜单时进入。我使用此事件来标记异步更新程序暂停。其效果是,如果在更新程序再次启动时未单击某个选项,则使用单击下拉菜单的表单的用户将重置下拉菜单。在firefox中,它可以按照我的意愿工作,因为事件启动初始下拉列表,预选项选择。
$(".action_selector").live({
  'click': function (){ show_action_edit_form( $(this) ); }
});

function show_action_edit_form( element ){
  console.log("oh, you clicked me.");
}