使用箭头导航菜单时,IE会在选择菜单上触发更改事件。在非IE浏览器中不是这种情况。非IE浏览器仅在单击选项时触发事件,或者在使用箭头导航到项目后按Enter键。有没有办法解决这个问题?我需要在用键导航时不要触发事件。
答案 0 :(得分:0)
如果可以的话,我会添加自己的更改事件侦听器并以这种方式处理。在不知道所有细节的情况下很难说,但我先看一下,因为事件无法取消。除了这种方法之外,IE会在值发生变化时触发事件,因此您无法做到这一点。这是IE中change/onchange的链接。它实际上在文档中说明了这一点。
要调用此事件,请执行以下操作之一:
它很臭,但是在使用选择字段时必须考虑其中一个。
答案 1 :(得分:0)
适用于我的情况的解决方案如下。
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.
})
}