I'm working on coding an SC-IAT in jsPsych and I'm very close to having it completed. However, I'm struggling to get some CSS/HTML to have the three target categories on the upper left and right corners (and then getting one of the target categories to switch sides after the second trial). I'll continue working on it, but if anyone has some ideas I would greatly appreciate it!
My code is below (there's probably a better way to do it than what I wrote, I'm new to JAVA).
SC-IAT jsPsych Code:
<!doctype html>
<html>
<head>
<title>SC-IAT</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="jspsych-5.0.3/jspsych.js"></script>
<link href="jspsych-5.0.3/css/jspsych.css" rel="stylesheet" type="text/css"></link>
<script src="jspsych-5.0.3/plugins/jspsych-text.js"></script>
<script src="jspsych-5.0.3/plugins/jspsych-categorize.js"></script>
</head>
<body>
</body>
<script>
/* randomize time between each trial */
var post_trial_gap = function()
{
return Math.floor( Math.random() * 200) + 100;
}
/* ===============INSTRUCTION BLOCKS==================*/
/* define instructions block */
var instructions =
{
type: "text"
,text: "Welcome to the experiment! Please press the space-bar key to begin"
,timing_post_trial: 2000
,cont_key: ['space']
};
/* define instructions2 block */
var instructions2 =
{
type: "text"
,text: "That was just a test...Now it's time for the real thing!!! Press space-bar to continue."
,timing_post_trial: 2000
,cont_key: ['space']
};
/* define rev_instructions block */
var rev_instructions =
{
type: "text"
,text: "Whoa! The words and stuff flipped to the other side! This is a practice round...Press space-bar to continue."
,timing_post_trial: 2000
,cont_key: ['space']
};
/* ============IMAGE AND WORDS FOR BLOCKS===============*/
/* practice trial images */
var practice_trial_images_and_words =
[
{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
]
/* full_trial images */
var full_trial_images_and_words =
[
{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 69}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
]
/* reverse practice trial images */
var rev_practice_trial_images_and_words =
[
{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 73}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
]
/* reverse full trial images and words */
var rev_full_trial_images_and_words =
[
{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Move.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single.png', key_answer: 73}
,{stimulus: 'jspsych-5.0.3/img/AF_300_Single_Move.png', key_answer: 73}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Me</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Mine</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">My</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">Myself</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">I</p>', is_html:true, key_answer: 69}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">They</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Them</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Their</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Theirs</p>', is_html:true, key_answer: 73}
,{stimulus: '<p class="center-content">Others</p>', is_html:true, key_answer: 73}
]
/* =============RANDOMIZATION OF STIMULI IN BLOCKS================== */
/* practice trial stimuli randomization */
var practice_trial_stimuli = jsPsych.randomization.repeat(practice_trial_images_and_words,2);
/* full trial stimuli randomization */
var full_trial_stimuli = jsPsych.randomization.repeat(full_trial_images_and_words,2);
/* reverse practice trial stimuli randomization */
var rev_practice_trial_stimuli = jsPsych.randomization.repeat(rev_practice_trial_images_and_words,2);
/* reverse full trial stimuli randomization */
var rev_full_trial_stimuli = jsPsych.randomization.repeat(rev_full_trial_images_and_words,2);
/* =================DEFINE BLOCKS================= */
/* define practice trial block */
var practice_trial =
{
type: 'categorize'
,choices: ['E','I']
,timing_post_trial: post_trial_gap
,timing_feedback_duration: 300
,correct_text:""
,incorrect_text:"<p><span style='font-size: 144px; color: #ff0000;'>X</span></p>"
,force_correct_button_press: false
,timing_response: 5000
,timeout_message:"Please respond faster."
,timeline: practice_trial_stimuli
};
/* define full trial block */
var full_trial =
{
type: 'categorize'
,choices: ['E','I']
,timing_post_trial: post_trial_gap
,timing_feedback_duration: 300
,correct_text:""
,incorrect_text:"<p><span style='font-size: 144px; color: #ff0000;'>X</span></p>"
,timing_response: 5000
,timeout_message:"Please respond faster."
,force_correct_button_press: false
,timeline: full_trial_stimuli
};
/* define reverse practice trial block */
var rev_practice_trial =
{
type: 'categorize'
,choices: ['E','I']
,timing_post_trial: post_trial_gap
,timing_feedback_duration: 300
,correct_text:""
,incorrect_text:"<p><span style='font-size: 144px; color: #ff0000;'>X</span></p>"
,timing_response: 5000
,timeout_message:"Please respond faster."
,force_correct_button_press: false
,timeline: rev_practice_trial_stimuli
};
/* define reverse full trial block */
var rev_full_trial =
{
type: 'categorize'
,choices: ['E','I']
,timing_post_trial: post_trial_gap
,timing_feedback_duration: 300
,correct_text:""
,incorrect_text:"<p><span style='font-size: 144px; color: #ff0000;'>X</span></p>"
,timing_response: 5000
,timeout_message:"Please respond faster."
,force_correct_button_press: false
,timeline: rev_full_trial_stimuli
};
/* ====================CREATE EXPERIMENT TIMELINE AND START IT================= */
/* create experiment timeline array */
var timeline = [];
timeline.push(instructions);
timeline.push(practice_trial);
timeline.push(instructions2);
timeline.push(full_trial);
timeline.push(rev_instructions);
timeline.push(rev_practice_trial);
timeline.push(instructions2);
timeline.push(rev_full_trial);
/* start the experiment */
jsPsych.init({
timeline: timeline
,fullscreen: true
,on_finish: function()
{
jsPsych.endExperiment('The experiment was ended. This is the end message.');
jsPsych.data.displayData();
}
});
</script>
</html>
CSS CODE:
=============================================================
=============================================================
/*
* CSS for jsPsych experiments.
*
* This stylesheet provides minimal styling to make jsPsych
* experiments look polished without any additional styles.
*/
/* fonts and type */
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
html {
font-family: 'Open Sans', 'Arial', sans-serif;
font-size: 18px;
line-height: 1.6em;
}
body {
margin: 0;
padding: 0;
}
p {
clear: both;
}
.very-small {
font-size: 50%;
}
.small {
font-size: 75%;
}
.large {
font-size: 125%;
}
.very-large {
font-size: 150%;
}
/* Classes for changing location of things */
.left {
float: left;
}
.right {
float: right;
}
.center-content {
text-align: center;
font-size: 150%;
}
.block-center {
margin: 1em auto;
display: block;
}
/* Form elements like input fields and buttons */
input[type="text"] {
font-family: 'Open Sans', 'Arial', sans-sefif;
font-size: 14px;
}
/* borrowing Bootstrap style for btn elements, but combining styles a bit */
.jspsych-btn {
display: inline-block;
padding: 6px 12px;
margin: 0px 8px;
font-size: 14px;
font-weight: 400;
font-family: 'Open Sans', 'Arial', sans-serif;
cursor: pointer;
line-height: 1.4;
text-align: center;
white-space: nowrap;
vertical-align: middle;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
color: #333;
background-color: #fff;
border-color: #ccc;
}
.jspsych-btn:hover {
background-color: #ddd;
border-color: #aaa;
}
/* Container holding jsPsych content */
.jspsych-display-element {
width: 800px;
font-size: 150%;
text-align: center;
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
}
/* jsPsych progress bar */
#jspsych-progressbar-container {
color: #777;
border-bottom: 2px solid #dedede;
background-color: #f3f3f3;
margin-bottom: 1em;
text-align: center;
padding: 10px 0px;
}
#jspsych-progressbar-container s {}
#jspsych-progressbar-outer {
background-color: #dedede;
border-radius: 5px;
padding: 1px;
width: 800px;
margin: auto;
}
#jspsych-progressbar-inner {
background-color: #aaa;
/* #3EB3D7; */
width: 0%;
height: 1em;
border-radius: 5px;
}
/* PLUGIN: jspsych-animation */
#jspsych-animation-image {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-categorize-animation */
#jspsych-categorize-animation-stimulus {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-categorize */
#jspsych-categorize-stimulus {
display: block;
margin-left: auto;
margin-right: auto;
}
.feedback {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-free-sort */
#jspsych-free-sort-arena {
margin-left: auto;
margin-right: auto;
border: 2px solid #444;
}
.jspsych-free-sort-draggable {
cursor: move;
}
#jspsych-free-sort-done-btn {
display: block;
margin: auto;
margin-top: 25px;
}
/* PLUGIN: jspsych-instructions */
.jspsych-instructions-nav {
text-align: center;
margin-top: 2em;
}
.jspsych-instructions-nav button {
margin: 20px;
}
/* PLUGIN: jspsych-multi-stim-multi-response */
#jspsych-multi-stim-multi-response-stimulus {
display: block;
margin: auto;
}
/* PLUGIN: jspsych-palmer */
#jspsych-palmer-snapCanvas {
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-same-different */
.jspsych-same-different-stimulus {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-single-stim */
#jspsych-single-stim-stimulus {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-survey-text */
.jspsych-survey-text {
margin: 0.25em 0em;
}
.jspsych-survey-text-question {
margin: 2em 0em;
}
/* PLUGIN: jspsych-survey-likert */
.jspsych-survey-likert-statement {
display:block;
font-size: 18px;
padding-top: 30px;
margin-bottom:10px;
}
.jspsych-survey-likert-opts {
list-style:none;
width:100%;
margin:0;
padding:0 0 35px;
display:block;
font-size: 14px;
line-height:1.1em;
}
.jspsych-survey-likert-opt-label {
line-height: 1.1em;
}
.jspsych-survey-likert-opts:before {
content: '';
position:relative;
top:11px;
/*left:9.5%;*/
display:block;
background-color:#efefef;
height:4px;
width:100%;
}
.jspsych-survey-likert-opts:last-of-type {
border-bottom: 0;
}
.jspsych-survey-likert-opts li {
display:inline-block;
/*width:19%;*/
text-align:center;
vertical-align: top;
}
.jspsych-survey-likert-opts li input[type=radio] {
display:block;
position:relative;
top:0;
left:50%;
margin-left:-6px;
}
/*
*
* PLUGIN: jspsych-survey-multi-choice
*
*/
.jspsych-survey-multi-choice-question {
margin-top: 2em;
margin-bottom: 2em;
}
.jspsych-survey-multi-choice-text span.required {
color: darkred;
}
.jspsych-survey-multi-choice-horizontal .jspsych-survey-multi-choice-text {
text-align: center;
}
.jspsych-survey-multi-choice-option {
line-height: 2;
}
.jspsych-survey-multi-choice-horizontal .jspsych-survey-multi-choice-option {
display: inline-block;
margin-left: 1em;
margin-right: 1em;
vertical-align: top;
}
label.jspsych-survey-multi-choice-text input[type="radio"] {
margin-right: 1em;
}
#jspsych-survey-multi-choice-next {
display: block;
margin: auto;
}
/** PLUGIN: jspsych-visual-search-circle **/
#jspsych-visual-search-circle-svg {
display: block;
margin-left: auto;
margin-right: auto;
}
/* PLUGIN: jspsych-vsl-animate-occlusion */
#jspsych-vsl-animate-occlusion-canvas {
display: block;
margin: auto;
}
/* PLUGIN: jspsych-xab */
.jspsych-xab-stimulus {
display: block;
margin-left: auto;
margin-right: auto;
}
--
You received this message because you are subscribed to the Google Groups "jsPsych" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jspsych+u...@googlegroups.com.
To post to this group, send email to jsp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jspsych/2957140e-b82b-4ff6-9e48-b19316498544%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/jspsych/bbe64114-6a07-44fa-9fc5-62a32697293e%40googlegroups.com.
Hi Josh,
Thanks again for the helpful response. I managed the play around with the CSS as you recommended and got the labels to display correctly – good news! I created two <div> elements: one that displays text on the top left corner, and one that displays text on the top right corner.
However, the prompt refreshes with each trial, causing the labels flash between each response. This is what I expected (and feared). Do you have any ideas of how I could get the labels to display as a background to the script to that it doesn’t flash after each trial? For instance, could I use “document.body.style.background =” in jsPsych tell it to display the <div> elements I created in CSS? I played around with this and couldn’t seem to get it to work – maybe it’s not supported in jsPsych?
Thanks again,
Nate
Hi all,
As an update, I managed to “create” a new plugin that allows the user to enter what words will be displayed on the left and right corners. The plugin is a copy of the catergorize plugin with only a few modifications.
I figured out a way to avoid the refresh flash by inserting the target words in the body of the html (see code below). The only issue with this option is that it keeps the words permanently after each trial. In other words, the target words stack on top of each other as I progress through the IAT. I’ve tried different methods such as inserting: document.getElementsByTagName(‘body’)[0].innerHTML = ''; in the code but haven’t had any success.
I’ll keep working on it, but any ideas or suggestions are always appreciated.
Best,
Nate
// if left_target is set, show left_target
if (trial.left_target !== "") {
$('body').before($('<div class = "left-side">'+trial.left_target+'</div>'));
}
// if right_target is set, show right_target
if (trial.right_target !== "") {
$('body').before($('<div class = "right-side">'+trial.right_target+'</div>'));
Another update: I found a method to keep the target words in place until the end of each block of trials. I’ll refine the CSS a bit and post the final version for those who may be interested. The solution was simple – I added one line of code that empties the <div> elements that hold the left and right target words. After both are emptied, the next line adds the appropriate target words. This is done nearly instantaneously, so the targets always remain visible on the screen to the user.
// new params for IAT
trial.left_target = (typeof trial.left_target === 'undefined') ? "" : trial.left_target;
trial.right_target = (typeof trial.right_target === 'undefined') ? "" : trial.right_target;
// if left_target is set, show left_target
if (trial.left_target !== "") {
$('div.left-side').empty();
$('body').before($('<div class = "left-side">'+trial.left_target+'</div>'));
}
// if right_target is set, show right_target
if (trial.right_target !== "") {
$('div.right-side').empty();
--
You received this message because you are subscribed to a topic in the Google Groups "jsPsych" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jspsych/3-YrE1upPqM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jspsych+unsubscribe@googlegroups.com.
To post to this group, send email to jsp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jspsych/c0b1a0b9-c1d2-4504-b2ab-ac00be4e3d19%40googlegroups.com.
/* write to server */ function saveData(filename, filedata) { $.ajax({ type:'post', cache: false, url: 'iatphp.php', // this is the path to the above PHP script data: {filename: filename, filedata: filedata} }); } /* grab data before the end of the experiment */ var save_data = { type: 'call-function' ,func: function() { saveData("data"+urlvar.subject+"_"+urlvar.condition+".csv", jsPsych.data.dataAsCSV()) } ,timing_post_trial: 0 } /* save data and debrief */ timeline.push(save_data);
--
You received this message because you are subscribed to a topic in the Google Groups "jsPsych" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jspsych/3-YrE1upPqM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jspsych+unsubscribe@googlegroups.com.
To post to this group, send email to jsp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jspsych/c4386ec4-4e28-4147-8748-1350c7f757cc%40googlegroups.com.
To unsubscribe from this group and all its topics, send an email to jspsych+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jspsych/3edbe925-847d-4e8a-830c-e06106891b13n%40googlegroups.com.