我与你们分享fiddle并在那里,如果你专注于输入字段并向下移动键盘箭头键,它将开始选择项目。
一旦你到达最后一次,它会让你再次上升。
我想限制它是这样一种方式:如果你在最后一个项目,它不会从顶部再次开始并给出alert('no more!')
,并保持在最后一个;当箭头指向第一个箭头时,它再次从最后一个开始,并保持在第一个。
答案 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);
}