先前单击下一个按钮时,clickNextButton无法正确执行

时间:2019-06-05 13:35:15

标签: javascript methods

我正在Qualtrics中进行调查,并使用clickNextButton方法自动将参与者引向有问题的下一页。我在以下几页中实现了该方法。此外,参与者还可以自己单击下一步按钮。当他们这样做时会出现问题:如果他们在时间限制之前单击下一个按钮,则在下一页中,该方法将参与者比在该页面之后的页面更早地定向到参与者。

this.hideNextButton();
var that = this;
(function(){that.clickNextButton();}).delay(40);

例如,我将每页的时间限制设置为40秒。在第1页上,参与者在10秒钟后手动单击“下一步”按钮。然后发生的是,在第2页上,参与者从28秒而不是40秒后转到了第3页。如果他在5秒后单击了第1页上的“下一个按钮”,那么他将在第2页上被转发至大约33秒后返回第3页。因此,很明显,这取决于他在第2页上被引导时在第1页上的点击速度。如何防止这种情况?

2 个答案:

答案 0 :(得分:1)

而不是使用计时器进行自动重定向。回答问题时,请分别调用on click方法,以便将其重定向到相应的页面。并在每次页面重定向时重置计时器。

答案 1 :(得分:0)

如果响应者自己单击“下一步”按钮,则需要清除超时(延迟只是setTimeout的prototypejs实现)。做这样的事情:

Qualtrics.SurveyEngine.addOnReady(function() {
  this.hideNextButton();
  var that = this;
  var timer = setTimeout(function() { that.clickNextButton(); },4000);
  Qualtrics.SurveyEngine.addOnPageSubmit(function() { clearTimeout(timer); });  
});