我正在做一个基于网络的测验。 当我按下一个答案时,我希望顶部的计数更改为下一个,但是它不断跳过一位数字,跳转到下一个数字(即从 I 到 III,而不是 I 到 III)。 我做错了什么?
网站:http://www.carlpapworth.com/friday-quiz/#
HTML:
<ul id="count">
<li><h4>I</h4></li>
<li><h4>II</h4></li>
<li><h4>III</h4></li>
<li><h4>IV</h4></li>
<li><h4>V</h4></li>
<li><h4>VI</h4></li>
<li><h4>VII</h4></li>
<li><h4>VIII</h4></li>
<li><h4>IX</h4></li>
<li><h4>X</h4></li>
</ul>
JS:
$('#count li:first').addClass('cCurrent');
$('.qAnswers li a').click(qNext);
function qNext(){
$('.cCurrent').next('#count li').addClass('cCurrent');
$('.cCurrent:first').removeClass('cCurrent');
}
最佳答案
js/custom.js
脚本在 <head>
中被提及两次 。您应该删除其中之一,否则点击事件会注册两次。
此外,.next()
里面的表达式看起来有点奇怪(你不需要 #count
,甚至可能不需要 li
)并且函数本身可以简化为:
function qNext()
{
$('#count .cCurrent')
.removeClass('cCurrent')
.next('li')
.addClass('cCurrent');
}
它删除当前突出显示的类 <li>
,然后移至下一个 <li>
并应用 cCurrent
在那里上课。
最后,您不应该为您的答案提供一个泄露答案正确或错误的类。您的答案是这样的:
<a href="#" class="qWrong">xxx</a>
<a href="#" class="qCorrect">xxx</a>
如果有人查看源代码,点击什么内容就会非常明显。
关于javascript - .next() 跳转两步而不是一步,有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974604/