[英]jQuery onchange event does not fire when change initiated by keyboard arrows?
我每次使用onchange事件触发select时,都使用下面的jQuery来更改div元素上的字体。
问题是,当我使用键盘在选择列表选项中循环浏览时,它不起作用。
仅当通过鼠标单击或字母单击更改选择列表时才会触发。 如何使它也响应上,下,右,左箭头?
var changeHandler = function() {
$('.fontPreview').fadeOut();
var myFont = $('#myFonts :selected').val();
var myFont2 = $('#myFonts :selected').val().split(':')[0];
$('#fontPreviewSrc').attr('href','http://fonts.googleapis.com/css?family='+myFont);
$('.fontPreview').attr('style','font-family:'+myFont2+';font-style:normal;font-size:2em;padding-top:10px;white-space:nowrap');
$('.fontPreview').fadeIn(1500);
}
$("#myFonts").change(changeHandler).keypress(changeHandler);
我认为您需要这样的东西:
$(document).ready(function() {
deflectEvent = function(event) {
var listItemCount = $("#list1 > option").length - 1;
var selectedItemIndex = $("#list1")[0].selectedIndex;
if (event.which == $.ui.keyCode.UP) {
$("#list1")[0].selectedIndex = (selectedItemIndex - 1 < 0) ? listItemCount : selectedItemIndex - 1;
}
if (event.which == $.ui.keyCode.DOWN) {
$("#list1")[0].selectedIndex = (curListItem + 1 > noOfListItems) ? 0 : curListItem + 1;
}
}
$(function($) { $("#input1").bind("keydown", deflectEvent) });
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.