Я разрабатываю эксперимент в квалитрике с использованием скрипта Java.Для каждого вопроса в моем исследовании участник должен угадать правильный ответ, ввести его, а затем нажать кнопку пробела.Как только они нажимают кнопку пробела, логика проверяет, является ли их ответ правильным или нет.Если ответ был правильным, звук должен воспроизводиться в течение 1,2 секунд, цвет фона должен поменяться на красный на секунду, а затем снова на белый, и, наконец, эксперимент должен автоматически перейти к следующему вопросу.
Пока я разобрался с правильной последовательностью команд.Однако, похоже, что я неправильно использую логику setTimeout.Независимо от того, какую комбинацию значений тайм-аута я использовал, я не мог воспроизвести все средние шаги, включая воспроизведение звука и вспышку на красном фоне, прежде чем экран перейдет к следующему вопросу.
Здесь я поделился своим кодом.Я был бы очень признателен за любую помощь.
Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
});
Qualtrics.SurveyEngine.addOnReady(function()
{
/*Place your JavaScript here to run when the page is fully displayed*/
var qid = this.questionId;
var changepage = null;
/*focus on the box*/
jQuery("#"+qid+" .InputText").select().focus();
document.onkeydown = function(event) {
console.log('keydown',event);
if (event.which == 32) { //hit the space button
event.preventDefault();
//read the input
input = jQuery("#"+qid+" .InputText").val();
console.log(input);
if (input.trim().toLowerCase() == "cat") {
//alert(input.trim().toLowerCase());
document.getElementById("correct").play(); //play the correct sound which is 1.2seconds long
setTimeout(jQuery("body").css("background-color","red"), 3000); // change the background color
setTimeout( jQuery('#NextButton').click(), 2000) //move on to the next question
} //end of if
} // end of if 32
} //end of down button
});
Qualtrics.SurveyEngine.addOnUnload(function()
{
jQuery("body").css("background-color","white");
});