我有一个下拉菜单,当其更改时会触发 ajax 调用:
$('.travel-to').change(function(){
$.ajax({
type: "GET",
url: "/inc/rates/rates-viewer.php",
data: "shtech=y&c_name="+escape($(this).val()),
success: function(html){
$(".rates-viewer").html(html);
$(".rates-viewer tr.numbers td").css({ opacity: 0 }).fadeTo("slow",1);
}
});
});
我的问题是,在 Firefox 中,使用上/下光标键循环选择下拉选项,不会触发 js onChange()
事件。在IE下没问题。
如何让 Firefox 将向上/向下光标视为 onChange
?我可以对事件执行“非此即彼”操作,以使 onChange
或按键触发相同的操作吗?
谢谢。
最佳答案
您实际上是在利用 IE 中的一个错误。 Firefox 正确支持 onChange,因为在浏览器失去选择字段的焦点之前它不会触发。 (事实上,我昨天 answered a question 谈到了这个问题。)将 onChange 与 select 一起使用实际上有点危险,特别是因为只有键盘的用户无法跳过某些选项。 (最重要的是,鼠标滚轮似乎会旋转多个答案,但实际上它在 IE 上经过的每个条目都会触发 onChange。)
如果您确实希望每当有人按下向上或向下键时都会触发该事件,我会 Hook onKeyPress 或 onKeyDown 事件,以便在按下“向上”或“向下”键时触发。
关于javascript - <select> 和 firefox 上的 jQuery change(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586936/