为什么我的Qualtrics Javascript代码没有运行预期的迭代次数?
我目前正在尝试进行一项心理测试,称为IAT考试。我从一个名为IATgen的包中获取了一些代码,该包在R中构建javascript iat,然后可以在Qualtrics中使用。我对代码做了一些修改,以便它能在手机上运行。但是,下面的代码无法正常工作。代码应该运行12次试验,这相当于刺激数组的长度。但是,在运行代码时,在结束IAT之前只进行了1次试验 我注意到的一件事是减少image_srcs数组的长度会增加试验次数,但我不理解为什么。然而,图像srcs阵列的长度应独立于试验运行,因为它应仅取决于刺激阵列的长度。如果有人知道为什么下面的代码只运行1次而不是12次,并且知道如何调整它使其运行12次,我将非常感激 如果我能提供进一步的澄清或回答任何问题,请毫不犹豫地询问/发送消息。提前非常感谢大家为什么我的Qualtrics Javascript代码没有运行预期的迭代次数?,javascript,html,qualtrics,Javascript,Html,Qualtrics,我目前正在尝试进行一项心理测试,称为IAT考试。我从一个名为IATgen的包中获取了一些代码,该包在R中构建javascript iat,然后可以在Qualtrics中使用。我对代码做了一些修改,以便它能在手机上运行。但是,下面的代码无法正常工作。代码应该运行12次试验,这相当于刺激数组的长度。但是,在运行代码时,在结束IAT之前只进行了1次试验 我注意到的一件事是减少image_srcs数组的长度会增加试验次数,但我不理解为什么。然而,图像srcs阵列的长度应独立于试验运行,因为它应仅取决于刺
Qualtrics.SurveyEngine.addOnload(函数(){
//声明初始变量
var电流刺激;
var端;
var-image\u-srcs;
var图像;
var加载图像;
var输入;
var消息;
变量刺激;
var票据;
var posstim;
var negstim;
变异系数;
var-Bstim;
//仅用于交替试验格式
var-tgts;
变种猫;
var tgtnum=[];
var catnum=[];
//定义addlines。这将放在单词刺激的前面,使其向下,以便更好地与图像中心对齐。
var addlines=“
”;
//以下仅在启用强制错误更正时使用
var-fix=0;
var误差;
//清除qID变量中的字符并另存为数字,以备以后使用
var qID=this.questionId;
qID=qID.替换(“qID”),“”;
qID=parseInt(qID);
//抓取INPUTID作为问题的引用并隐藏文本框
var InputId=document.getElementById(“QR~”+this.questionId);
InputId.style.display=“无”;
//隐藏下一步按钮
if(document.getElementById('NextButton'))document.getElementById('NextButton').style.display=“none”;//旧API…现在可能无法工作
if(document.getElementById('PrevButton'))document.getElementById('PrevButton').style.display=“none”;//旧API…现在可能无法工作
this.hideNextButton();
//声明函数
//SHUFFLER-使用经过验证的方法将数组的内容随机化
函数洗牌(数组){
var currentIndex=array.length,
时间值,随机指数;
//虽然还有一些元素需要洗牌。。。
而(0!==currentIndex){
//选择剩余的元素。。。
randomIndex=Math.floor(Math.random()*currentIndex);
currentIndex-=1;
//并将其与当前元素交换。
临时值=数组[currentIndex];
数组[currentIndex]=数组[randomIndex];
数组[randomIndex]=临时值;
}
返回数组;
};
//功能1-图像加载器
/*此函数是IAT中的第一个命令。它由此脚本底部的代码调用
并将所有图像刺激放在一个名为images的数组中。如果image\u srcs对象中没有URL,则会跳转到前面
转到IAT的下一部分,而不加载任何图像。如果遇到错误,将跳过IAT块*/
函数loadImages(image\u srcs){
变量src,_i,_len;
//如果未指定图像,请跳过此步骤
if(image_srcs.length==0){
返回imagesLoaded();
}
图像=[];
LoadeImage=0;
对于(_i=0,_len=image_srcs.length;_i<_len;_i++){
src=image_srcs[_i];
图像。推送(新图像);
images[images.length-1].src=src;
images[images.length-1].onerror=function(){
警报(“您的web浏览器在运行此部分研究时遇到问题。您将被跳过。您可能需要多次单击此消息。”);
if(document.getElementById('NextButton'))document.getElementById('NextButton')。单击();
};
图像[images.length-1]。onload=function(){
LoadeImage++;
if(loadedImages=images.length)返回imagesLoaded();
};
}
返回图像;
};
//功能2-加载图像
/*所有图像加载程序完成后运行,启动按键侦听器。
对于强制纠错IAT,最后一行应返回keyCheckForcedError,而不是keyCheck*/
函数imagesLoaded(){
document.getElementById('loading').style.display='none';
document.getElementById('instructions').style.display='block';
jQuery(“#avanti”)。单击(函数(){
返回开始();
});
jQuery(“#左”)。单击(函数(){
return keyCheckForcedError();
});
jQuery(“#右”)。单击(函数(){
return keyCheckForcedError();
});
};
//功能3-启动功能
/*在按键侦听器开始后按下空格键时运行。进行初始整理(获取HTML内容,如消息、错误等,并使其成为我们可以写入的内容)。它将问题文本框的内容设置为“输入”,
因此,我们可以通过编辑该值来为问题写入数据。它还将指令设置为空。然后,它洗牌刺激和
开始第一次审判*/
函数start(){
message=document.getElementById(“消息”);
error=document.getElementById(“error”);//仅用于强制错误更正
输入=document.getElementById(“QR~QID”+QID);
instructions.innerHTML=“”;
avanti.innerHTML=“”;
note=document.getElementById(“note”);
note.innerHTML=“Se commetti un errore,compariráuna”+'嘿,这有很多代码需要整理……你认为你可以将它浓缩并显示你认为错误所在的部分吗?除非你不知道它在哪里,否则不幸的是,这正是问题所在。我不知道错误在哪里。