【发布时间】:2013-03-19 06:17:23
【问题描述】:
IE 在使用箭头导航菜单时触发选择菜单上的更改事件。在非 IE 浏览器中情况并非如此。非 IE 浏览器仅在单击选项时触发事件,或者在使用箭头导航到项目后按 Enter 键。有没有办法解决这个问题?我需要在使用按键导航时不触发该事件。
【问题讨论】:
标签: javascript internet-explorer drop-down-menu onchange
IE 在使用箭头导航菜单时触发选择菜单上的更改事件。在非 IE 浏览器中情况并非如此。非 IE 浏览器仅在单击选项时触发事件,或者在使用箭头导航到项目后按 Enter 键。有没有办法解决这个问题?我需要在使用按键导航时不触发该事件。
【问题讨论】:
标签: javascript internet-explorer drop-down-menu onchange
如果可以的话,我会添加自己的更改事件侦听器并以这种方式处理事情。在不知道所有细节的情况下很难说,但我会先看看那里,因为活动无法取消。在这种方法之外,IE 将在值更改时触发事件,因此您对此无能为力。这是 IE 中change/onchange 的链接。它实际上在文档中说明了这一点。
要调用此事件,请执行以下操作之一:
它很臭,但其中之一是您在使用选择字段时必须考虑的问题。
【讨论】:
适用于我的情况的解决方案如下。
blur 事件而不是change 事件。这引入了另一个问题,当我最初加载页面时,select 会触发 change 事件,我需要 blur 绑定中的代码才能生效。绑定到change 并让它触发blur 会导致大量递归。解决方案是创建一个在启动时运行的 init 函数。
initData : function(){
var t = this,
formSelects = 'select';
jQuery.each(formSelects, function(){
// do my code here that normally happens in blur.
})
}
【讨论】: