jquery – 禁用第一个和最后一个元素的keyCode

前端之家收集整理的这篇文章主要介绍了jquery – 禁用第一个和最后一个元素的keyCode前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@我已经制作了一个onkeydown函数,它横向运行li元素块,它运行得很完美,但我需要当第一个和最后一个li块聚焦时,左右键应该被禁用.

有谁能建议一个正确的方法? Thanx提前!!!

$(document).ready(function() {
    var winht = $(window).height();
    var contUl = $('.content ul').children('li').size();
    var widLi = $('.content ul li').width();
    var contUlAndLI = contUl * widLi;
    var leftIndex = $('.content ul').css('left','0');
    $('.content ul').width(contUlAndLI);
    $('#frame').height(winht);

$("body").keydown(function(e) {

  if(e.keyCode == 37) { // left
    $(".content ul").animate({
      left: "-=980"
    });
  }
  else if(e.keyCode == 39) { // right
    $(".content ul").animate({
      left: "+=980"
    });
  }

});

if( leftIndex == 0){

    $("body").keydown(function(e) {

        if(e.keyCode == 39){ // right
            //event.preventDefault();
            return false;
            }

        });
  }

});

工作参考是jsfiddle

解决方法

我是通过使用计数器来完成的,每次用户按下左或右时,都会检查其值.计数器只是ul标签内li元素的数量.
var ulCount = $('.content li').length - 1;
var i = 0;

然后,如果我们在计数器的值内,则只运行动画:

if(e.keyCode == 37) { // left
    if (i < ulCount) {
        i++;
        $(".content ul").animate({
          left: "-=980"
        });
    }
}
else if(e.keyCode == 39) { // right
    if (i > 0) {
        i--;
        $(".content ul").animate({
            left: "+=980"
        });
    }
}

我也更新了jsFiddle.

原文链接:https://www.f2er.com/jquery/178442.html

猜你在找的jQuery相关文章