如何定义第一个和最后一个对象并停止循环

时间:2015-07-09 08:14:08

标签: javascript jquery

我与你们分享fiddle并在那里,如果你专注于输入字段并向下移动键盘箭头键,它将开始选择项目。

一旦你到达最后一次,它会让你再次上升。

我想限制它是这样一种方式:如果你在最后一个项目,它不会从顶部再次开始并给出alert('no more!'),并保持在最后一个;当箭头指向第一个箭头时,它再次从最后一个开始,并保持在第一个。

5 个答案:

答案 0 :(得分:4)

以下是Navigate函数正文中的必要变化。而不是:

if (displayBoxIndex >= oBoxCollection.length)
    displayBoxIndex = 0;
if (displayBoxIndex < 0)
    displayBoxIndex = oBoxCollection.length - 1;

您需要拥有以下代码块:

if (displayBoxIndex >= oBoxCollection.length)
    displayBoxIndex = oBoxCollection.length - 1;
if (displayBoxIndex < 0)
    displayBoxIndex = 0;

警报看起来像这样:

if (displayBoxIndex >= oBoxCollection.length) {
    alert('no more!');
    displayBoxIndex = oBoxCollection.length - 1;
}

答案 1 :(得分:2)

在你的JS代码中有一个名为Navigate的函数...它控制按下某个键时会发生什么。

下面的代码负责在达到限制后将光标移回到开头。

if (displayBoxIndex >= oBoxCollection.length)
     displayBoxIndex = 0;
if (displayBoxIndex < 0)
     displayBoxIndex = oBoxCollection.length - 1;

如果您希望光标停在最后一个框,并提醒用户,请将第一个if语句更改为此...

if (displayBoxIndex >= oBoxCollection.length){
displayBoxIndex = displayBoxIndex  - 1;
alert("no more!");}

使用这些函数,您可以操作光标超出范围时发生的情况。

答案 2 :(得分:0)

试试这个:您可以使用:first:last

检查第一个和最后一个元素
var Navigate = function(diff) {
    displayBoxIndex += diff;
    var oBoxCollection = $(".qss.selected");

    if(oBoxCollection.length==0)
    {
        $(".qss:first").addClass('selected');
    }
    else if((diff==1 && oBoxCollection.is(':last')) || (diff==-1 && oBoxCollection.index()==0))
    {
        alert('No More!');
        return false;
    }
    else if(diff==1)
    { oBoxCollection.removeClass('selected').next('.qss').addClass('selected');
    }
    else if(diff==-1)
    { oBoxCollection.removeClass('selected').prev('.qss').addClass('selected');
    }
}

<强> JSFiddle Demo

答案 3 :(得分:0)

进行这些更改,而不是再次将displayboxindex指定为0。

$a = ['elm1' => 1, 'elm2' => []];
$b = ['elm1' => 2, 'elm2' => [3]];
$c = array_replace_recursive($b, $a);

答案 4 :(得分:0)

更改导航方法,如下所示

var Navigate = function(diff) {

   displayBoxIndex += diff;
   var oBoxCollection = $(".qss");
   if(displayBoxIndex<0){
      displayBoxIndex=0;
      alert("no more");
   }
   if(displayBoxIndex>=oBoxCollection.length){
      displayBoxIndex=oBoxCollection.length-1;
      alert("no more"); 
   }

   var cssClass = "selected";
   oBoxCollection.removeClass(cssClass).eq(displayBoxIndex).addClass(cssClass);
}