使用Javascript延迟显示Qualtrics中的文本

时间:2015-10-07 20:24:58

标签: javascript qualtrics

(这与未答复的问题https://stackoverflow.com/questions/26745762/delaying-presentation-of-text-in-qualtrics

有关

我正在进行Qualtrics调查。我想延迟显示一些文本(例如,text) - 它应隐藏5秒钟,然后显示。

我在这里找到了一个资源 - Javascript for Qualtrics - 我无法开始工作。

从这个例子中得出,我试图通过延迟照片的显示来复制它。我这样做是为了看看在继续延迟文本显示而不是照片之前我是否能够正常工作。

在HTML部分,我把:

Time: <span id="time1">30</span><br>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/19/%C3%81guila_calva.jpg/1280px-%C3%81guila_calva.jpg" style="width: 133px; height: 115px;" class='pic1' />

在Javascript部分,我有:

started = false;
function countDown1() {
  if (!started)
    started = true;
  else {
    var value1 = parseInt($('time1').innerHTML);
    $('time1').innerHTML = value1 - 1;

    if (value1 == 26) {
      var styling1 = document.getElementsByClassName('pic1')[0];
      styling1.style.display = "none";
    }
  }
  setTimeout(countDown1, 1000);
}
Event.observe(window, 'load', countDown1);

出于某种原因,计时器或照片根本没有任何反应。

我是否需要将上述Javascript包装在:

Qualtrics.SurveyEngine.addOnload(function()
{   

});

我也试过了,但没有改变。

所以我真的有两个问题。 1.如何修改上述代码以使其正常工作。 2.如何在一段时间后修改代码的工作版本以显示文本?

2 个答案:

答案 0 :(得分:2)

你使它变得比需要的更复杂。

以下是问题的示例html:

This is a question. <span id="hiddentext" style="display:none">This text 
will display after five seconds.</span>

以下是问题的javascript:

Qualtrics.SurveyEngine.addOnload(function()
{
    setTimeout("$('hiddentext').style.display = 'inline'",5000);
});

答案 1 :(得分:1)

这会将多项选择问题中的单选按钮或选项隐藏2秒钟。如果您还需要隐藏下一个按钮,您可以添加Qualtrics中已提供的时间问题并将其设置为&#34;在(秒)之后启用提交&#34;。

Qualtrics.SurveyEngine.addOnload(function() {
var QID = this.questionId;
console.log(QID);
for (var i = 1; i < 4; i++) {
    document.getElementById( QID + "-" + i + "-label" ).style.display="none";
}


(function(delay_container){
    for (var i = 1 ; i < 4 ; i ++){
        document.getElementById(QID + "-" + i + "-label").style.display="block";
    }
}).delay(2,this.questionContainer);
});    

我们假设你有两个句子是两个独立的描述性文本框。并且你希望第二个框出现在第一个框后几秒钟。当分配给第二个框时,以下内容适用于我。相同的代码也适用于以下框。您可以再次在页面末尾添加Timing问题以隐藏Next按钮。

Qualtrics.SurveyEngine.addOnload(function() {
var QID = this.questionId;
console.log(QID);
for (var i = 1; i < 4; i++) {
    document.getElementById( QID).style.display="none";
}


(function(delay_container){
    for (var i = 1 ; i < 4 ; i ++){
        document.getElementById(QID).style.display="block";
    }
}).delay(2,this.questionContainer);


});