Jquery 键关闭事件仅在每秒按下一次时起作用

Jquery keydown event only working every second press?

本文关键字:起作用 一次 事件 Jquery      更新时间:2023-09-26

本质上,我创建了一个缩略图库,您可以使用左右箭头滚动浏览。右箭头事件工作得很好,所以我假设左箭头事件除了 (-) 值之外是相同的。但是,当我按左键时,它只会每隔一段时间转到上一个缩略图。

有人可以看看我的代码并让我知道我错过了什么吗?谢谢!

$(document).bind("keydown", function(event) {
if (event.keyCode == 39)
{   
    $("#thumbnail img").each(function(i) {
        if ($(this).hasClass("currentThumb"))
        {
            currentSelectionIndex = i;
            $("#thumbnail img").removeClass("currentThumb").addClass("thumb");  
            if (currentSelectionIndex == 14 && parseInt($('#end').text()) < parseInt($('#total').text()))
            {
                nextImages(currentCategory.value);  
            }
        }   
        if(i == currentSelectionIndex + 1)
        {
            $(this).removeClass("thumb").addClass("currentThumb");
            $(this).parent().click();
        }
    });
}
if (event.keyCode == 37)
{   
    $("#thumbnail img").each(function(i) {
        if ($(this).hasClass("currentThumb"))
        {
            currentSelectionIndex = i;
            $("#thumbnail img").removeClass("currentThumb");
            $("#thumbnail img").addClass("thumb");  
            if (currentSelectionIndex == 0  && parseInt($('#start').text()) > 1)
            {
                prevImages(currentCategory.value);  
            }
        }   
        if(i == currentSelectionIndex - 1)
        {
            $(this).removeClass("thumb").addClass("currentThumb");
            $(this).parent().click();
        }
    });
}

});

反转你的选择应该足以让它反向进行。

$.fn.reverse = [].reverse; // at the top of your code

// in the event handler for left arrow
$("#thumbnail img").reverse().each(function(i) {

别忘了改回+

它可能使用 keyup 而不是 keydown 工作。我有一些问题。如果它不起作用,请使用 http://jsfiddle.net 以便我们可以更轻松地解决它。