Qualtrics,Javascript:如何实现暂停并显示以前隐藏的选项?

时间:2016-09-21 10:47:36

标签: javascript qualtrics

我设计了一项新的调查,在我的多项选择问题中,替代方案应隐藏1秒,以便用户在回答之前倾向于更多地关注问题。 到目前为止,我的代码只能隐藏选项,但等待和显示仍然缺失。 (以下代码)

感谢您提供有关如何解决此问题的任何帮助或建议。

Qualtrics.SurveyEngine.addOnload(function () {
    this.hideNextButton();
    this.hideChoices();

    //HERE I WOULD LIKE THE CODE TO WAIT FOR 1 sec 

    //HERE I WOULD LIKE THE CHOICES TO REAPPEAR ON THE SCREEN

    this.questionclick = function (event, element) {
        if (this.getChoiceValue(4) == true) {
            this.clickNextButton();
        } else if (this.getChoiceValue(5) == true) {
            this.clickNextButton();
        }
    }
});

1 个答案:

答案 0 :(得分:1)

这里有两个问题。

  1. 如何等一秒钟?这是通过setTimeout()和回调函数完成的。
  2. 如何确保回调函数适用于正确的对象? - 这是通过将我们想要处理的对象存储在变量中来完成的。
  3. 因此,在不了解Qualtrics SurveyEngine的任何内容的情况下,从您的代码中可以清楚地看出this回调中的onLoad是指您的调查对象。我们稍后会在setTimeout回调中需要该对象,所以让我们存储它。其余的很简单:

    Qualtrics.SurveyEngine.addOnload(function () {
      var survey = this;
    
      // attach click event handler    
      self.questionclick = function (event, element) {
        // using `survey` instead of `this` would work here, too
        if (this.getChoiceValue(4) || this.getChoiceValue(5)) {
          this.clickNextButton();
        }
      };
    
      // hide buttons
      survey.hideNextButton();
      survey.hideChoices();
    
      // after 1000ms, show buttons again
      setTimeout(function () {
        survey.showNextButton();
        survey.showChoices();
      }, 1000);
    });