当使用箭头导航菜单时,IE 会在选择菜单上触发更改事件。在非 IE 浏览器中情况并非如此。非 IE 浏览器仅在单击选项时触发事件,或者在使用箭头导航到项目后按 Enter。有没有办法解决这个问题?我需要在使用按键导航时不触发该事件。
user888750
问问题
168 次
2 回答
0
如果可以的话,我会添加自己的更改事件侦听器并以这种方式处理事情。在不知道所有细节的情况下很难说,但我会先看看那里,因为活动无法取消。在这种方法之外,IE 将在值发生变化时触发事件,因此您对此无能为力。这是IE中更改/onchange的链接。它实际上在文档中说明了这一点。
要调用此事件,请执行以下操作之一:
- 使用鼠标或键盘导航在选择对象中选择不同的选项。
- 更改文本区域中的文本,然后导航出对象。
它很臭,但在使用选择字段时您必须考虑其中之一。
于 2013-03-19T18:54:14.750 回答
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.
})
}
于 2013-03-20T19:37:09.867 回答