我如何“跳”到特定元素?

我有一个脚本来显示我的测验。 一次显示一个问题,当您单击下一个问题时,旧问题将淡出,新问题将逐渐消失。

我还制作了一个引用问题的表 – 该表是用更多的j生成的。 我想这样做,以便当我点击“问题1”时,当前显示的问题逐渐淡出,问题1淡入(我说这里消失了,但实际上动画是即时的,你可以告诉)。 如果我点击“问题2”同样的事情发生除了问题2淡入。我无法弄清楚如何做到这一点,而不做一些非常复杂的事情。 有关如何实现这一目标的任何想法?

var totalQuestions = $('.questions').length; var currentQuestion = 0; var $questions = $('.questions'); $questions.hide(); $($questions[currentQuestion]).fadeIn(0); $('#btn-next').click(function() { $($questions[currentQuestion]).fadeOut(0, function() { currentQuestion++; if (currentQuestion == totalQuestions) { //do something here } else { $($questions[currentQuestion]).fadeIn(0); } }); tableControl(totalQuestions); }) var tableControl = function(numberOfQuestions) { for (var i = 0; i < numberOfQuestions; i++) { $('#quiz-table').append( "" + "  Question " + (i + 1) + " " + " " + " " + " " + "" ); } } 
  
Question Marked Completed Skipped

你需要.eq(currentQuestion)

我清理干净,当我发现你需要一张导航桌时,我也修好了

 $(function() { var $questions = $('.questions'), totalQuestions = $questions.length, currentQuestion = 0; tableControl(totalQuestions); $questions.hide(); $questions.eq(currentQuestion).fadeIn(0); $('#btn-next').click(function() { $questions.eq(currentQuestion).fadeOut(0, function() { currentQuestion++; if (currentQuestion == totalQuestions) { console.log("DONE"); } else { $questions.eq(currentQuestion).fadeIn(0); } }); }); $('#quiz-table').on("click",".nav",function(e) { e.preventDefault(); var clicked=$(this).data("id"); // or the clicked TR if there is a one to one match $questions.eq(currentQuestion).fadeOut(0, function() { currentQuestion=clicked; $questions.eq(clicked).fadeIn(0); }); }); }) var tableControl = function(numberOfQuestions) { for (var i = 0; i < numberOfQuestions; i++) { $('#quiz-table').append( "" + "  Question " + (i + 1) + " " + " " + " " + " " + "" ); } } 
  
Question Marked Completed Skipped

你肯定在寻找:

.eq(n) – 这将是一个问题。

首先将questions类添加到

并在tableControl()范围内添加一些变量。 点击处理程序也必须在那里。 这是一堆代码

 var current = 0; $('#btn-next').click(function () { $('.questions').eq(current).fadeOut(); current++; $('.questions').eq(current).fadeIn(); }); 

和例子

Interesting Posts