簡體   English   中英

通過鍵盤箭頭啟動更改時,jQuery onchange事件不會觸發?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM