jspsych 6.2.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/README.md +43 -29
  2. package/css/jspsych.css +39 -39
  3. package/dist/JsPsych.d.ts +112 -0
  4. package/dist/TimelineNode.d.ts +34 -0
  5. package/dist/index.browser.js +3164 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.browser.min.js +2 -0
  8. package/dist/index.browser.min.js.map +1 -0
  9. package/dist/index.cjs +3158 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3152 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/migration.d.ts +3 -0
  15. package/dist/modules/data/DataCollection.d.ts +45 -0
  16. package/dist/modules/data/DataColumn.d.ts +15 -0
  17. package/dist/modules/data/index.d.ts +25 -0
  18. package/dist/modules/data/utils.d.ts +3 -0
  19. package/dist/modules/extensions.d.ts +22 -0
  20. package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
  21. package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
  22. package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
  23. package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
  24. package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
  25. package/dist/modules/plugin-api/index.d.ts +8 -0
  26. package/dist/modules/plugins.d.ts +129 -0
  27. package/dist/modules/randomization.d.ts +35 -0
  28. package/dist/modules/turk.d.ts +40 -0
  29. package/dist/modules/utils.d.ts +7 -0
  30. package/package.json +32 -15
  31. package/src/JsPsych.ts +884 -0
  32. package/src/TimelineNode.ts +536 -0
  33. package/src/index.ts +71 -0
  34. package/src/migration.ts +37 -0
  35. package/src/modules/data/DataCollection.ts +198 -0
  36. package/src/modules/data/DataColumn.ts +86 -0
  37. package/src/modules/data/index.ts +174 -0
  38. package/src/modules/data/utils.ts +75 -0
  39. package/src/modules/extensions.ts +23 -0
  40. package/src/modules/plugin-api/HardwareAPI.ts +32 -0
  41. package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
  42. package/src/modules/plugin-api/MediaAPI.ts +337 -0
  43. package/src/modules/plugin-api/SimulationAPI.ts +181 -0
  44. package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
  45. package/src/modules/plugin-api/index.ts +28 -0
  46. package/src/modules/plugins.ts +158 -0
  47. package/src/modules/randomization.ts +327 -0
  48. package/src/modules/turk.ts +99 -0
  49. package/src/modules/utils.ts +30 -0
  50. package/.github/workflows/jest.yml +0 -20
  51. package/code-of-conduct.md +0 -56
  52. package/contributors.md +0 -61
  53. package/docs/CNAME +0 -1
  54. package/docs/about/about.md +0 -18
  55. package/docs/about/contributing.md +0 -43
  56. package/docs/about/license.md +0 -25
  57. package/docs/about/support.md +0 -7
  58. package/docs/core_library/jspsych-core.md +0 -661
  59. package/docs/core_library/jspsych-data.md +0 -589
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -510
  61. package/docs/core_library/jspsych-randomization.md +0 -397
  62. package/docs/core_library/jspsych-turk.md +0 -102
  63. package/docs/img/blue.png +0 -0
  64. package/docs/img/folder-setup.png +0 -0
  65. package/docs/img/folder-with-html.png +0 -0
  66. package/docs/img/githubreleases.jpg +0 -0
  67. package/docs/img/jspsych-favicon.png +0 -0
  68. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  69. package/docs/img/jspsych-logo.jpg +0 -0
  70. package/docs/img/orange.png +0 -0
  71. package/docs/img/palmer_stim.png +0 -0
  72. package/docs/img/progress_bar.png +0 -0
  73. package/docs/img/visual_search_example.jpg +0 -0
  74. package/docs/index.md +0 -9
  75. package/docs/overview/browser-device-support.md +0 -35
  76. package/docs/overview/callbacks.md +0 -140
  77. package/docs/overview/data.md +0 -281
  78. package/docs/overview/exclude-browser.md +0 -32
  79. package/docs/overview/experiment-options.md +0 -121
  80. package/docs/overview/fullscreen.md +0 -36
  81. package/docs/overview/media-preloading.md +0 -91
  82. package/docs/overview/mturk.md +0 -77
  83. package/docs/overview/progress-bar.md +0 -110
  84. package/docs/overview/record-browser-interactions.md +0 -23
  85. package/docs/overview/running-experiments.md +0 -95
  86. package/docs/overview/timeline.md +0 -387
  87. package/docs/overview/trial.md +0 -142
  88. package/docs/plugins/creating-a-plugin.md +0 -79
  89. package/docs/plugins/jspsych-animation.md +0 -40
  90. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  91. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  92. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  93. package/docs/plugins/jspsych-call-function.md +0 -81
  94. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  95. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  96. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  97. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  98. package/docs/plugins/jspsych-categorize-html.md +0 -52
  99. package/docs/plugins/jspsych-categorize-image.md +0 -53
  100. package/docs/plugins/jspsych-cloze.md +0 -45
  101. package/docs/plugins/jspsych-external-html.md +0 -70
  102. package/docs/plugins/jspsych-free-sort.md +0 -55
  103. package/docs/plugins/jspsych-fullscreen.md +0 -57
  104. package/docs/plugins/jspsych-html-button-response.md +0 -42
  105. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  106. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  107. package/docs/plugins/jspsych-iat-html.md +0 -64
  108. package/docs/plugins/jspsych-iat-image.md +0 -64
  109. package/docs/plugins/jspsych-image-button-response.md +0 -46
  110. package/docs/plugins/jspsych-image-keyboard-response.md +0 -57
  111. package/docs/plugins/jspsych-image-slider-response.md +0 -52
  112. package/docs/plugins/jspsych-instructions.md +0 -58
  113. package/docs/plugins/jspsych-maxdiff.md +0 -42
  114. package/docs/plugins/jspsych-rdk.md +0 -119
  115. package/docs/plugins/jspsych-reconstruction.md +0 -48
  116. package/docs/plugins/jspsych-resize.md +0 -39
  117. package/docs/plugins/jspsych-same-different-html.md +0 -53
  118. package/docs/plugins/jspsych-same-different-image.md +0 -66
  119. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -50
  120. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  121. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  122. package/docs/plugins/jspsych-survey-likert.md +0 -70
  123. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  124. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  125. package/docs/plugins/jspsych-survey-text.md +0 -63
  126. package/docs/plugins/jspsych-video-button-response.md +0 -52
  127. package/docs/plugins/jspsych-video-keyboard-response.md +0 -48
  128. package/docs/plugins/jspsych-video-slider-response.md +0 -58
  129. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  130. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  131. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  132. package/docs/plugins/overview.md +0 -111
  133. package/docs/tutorials/hello-world.md +0 -144
  134. package/docs/tutorials/rt-task.md +0 -1107
  135. package/examples/add-to-end-of-timeline.html +0 -32
  136. package/examples/conditional-and-loop-functions.html +0 -63
  137. package/examples/css/jquery-ui.css +0 -1225
  138. package/examples/data-add-properties.html +0 -40
  139. package/examples/data-as-function.html +0 -36
  140. package/examples/data-from-timeline.html +0 -45
  141. package/examples/data-from-url.html +0 -21
  142. package/examples/demo-flanker.html +0 -108
  143. package/examples/demo-simple-rt-task.html +0 -104
  144. package/examples/demos/demo_1.html +0 -29
  145. package/examples/demos/demo_2.html +0 -43
  146. package/examples/demos/demo_3.html +0 -58
  147. package/examples/display-element-to-embed-experiment.html +0 -73
  148. package/examples/end-active-node.html +0 -52
  149. package/examples/end-experiment.html +0 -43
  150. package/examples/exclusions.html +0 -32
  151. package/examples/external_html/simple_consent.html +0 -4
  152. package/examples/img/1.gif +0 -0
  153. package/examples/img/10.gif +0 -0
  154. package/examples/img/11.gif +0 -0
  155. package/examples/img/12.gif +0 -0
  156. package/examples/img/2.gif +0 -0
  157. package/examples/img/3.gif +0 -0
  158. package/examples/img/4.gif +0 -0
  159. package/examples/img/5.gif +0 -0
  160. package/examples/img/6.gif +0 -0
  161. package/examples/img/7.gif +0 -0
  162. package/examples/img/8.gif +0 -0
  163. package/examples/img/9.gif +0 -0
  164. package/examples/img/age/of1.jpg +0 -0
  165. package/examples/img/age/of2.jpg +0 -0
  166. package/examples/img/age/of3.jpg +0 -0
  167. package/examples/img/age/om1.jpg +0 -0
  168. package/examples/img/age/om2.jpg +0 -0
  169. package/examples/img/age/om3.jpg +0 -0
  170. package/examples/img/age/yf1.jpg +0 -0
  171. package/examples/img/age/yf4.jpg +0 -0
  172. package/examples/img/age/yf5.jpg +0 -0
  173. package/examples/img/age/ym2.jpg +0 -0
  174. package/examples/img/age/ym3.jpg +0 -0
  175. package/examples/img/age/ym5.jpg +0 -0
  176. package/examples/img/backwardN.gif +0 -0
  177. package/examples/img/blue.png +0 -0
  178. package/examples/img/con1.png +0 -0
  179. package/examples/img/con2.png +0 -0
  180. package/examples/img/fixation.gif +0 -0
  181. package/examples/img/happy_face_1.jpg +0 -0
  182. package/examples/img/happy_face_2.jpg +0 -0
  183. package/examples/img/happy_face_3.jpg +0 -0
  184. package/examples/img/happy_face_4.jpg +0 -0
  185. package/examples/img/inc1.png +0 -0
  186. package/examples/img/inc2.png +0 -0
  187. package/examples/img/normalN.gif +0 -0
  188. package/examples/img/orange.png +0 -0
  189. package/examples/img/redX.png +0 -0
  190. package/examples/img/ribbon.jpg +0 -0
  191. package/examples/img/sad_face_1.jpg +0 -0
  192. package/examples/img/sad_face_2.jpg +0 -0
  193. package/examples/img/sad_face_3.jpg +0 -0
  194. package/examples/img/sad_face_4.jpg +0 -0
  195. package/examples/js/snap.svg-min.js +0 -21
  196. package/examples/jspsych-RDK.html +0 -58
  197. package/examples/jspsych-animation.html +0 -33
  198. package/examples/jspsych-audio-button-response.html +0 -52
  199. package/examples/jspsych-audio-keyboard-response.html +0 -62
  200. package/examples/jspsych-audio-slider-response.html +0 -55
  201. package/examples/jspsych-call-function.html +0 -32
  202. package/examples/jspsych-canvas-button-response.html +0 -95
  203. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  204. package/examples/jspsych-canvas-slider-response.html +0 -67
  205. package/examples/jspsych-categorize-animation.html +0 -46
  206. package/examples/jspsych-categorize-html.html +0 -38
  207. package/examples/jspsych-categorize-image.html +0 -38
  208. package/examples/jspsych-cloze.html +0 -42
  209. package/examples/jspsych-free-sort.html +0 -97
  210. package/examples/jspsych-fullscreen.html +0 -44
  211. package/examples/jspsych-html-button-response.html +0 -46
  212. package/examples/jspsych-html-keyboard-response.html +0 -42
  213. package/examples/jspsych-html-slider-response.html +0 -53
  214. package/examples/jspsych-iat.html +0 -510
  215. package/examples/jspsych-image-button-response.html +0 -84
  216. package/examples/jspsych-image-keyboard-response.html +0 -78
  217. package/examples/jspsych-image-slider-response.html +0 -76
  218. package/examples/jspsych-instructions.html +0 -37
  219. package/examples/jspsych-maxdiff.html +0 -33
  220. package/examples/jspsych-reconstruction.html +0 -43
  221. package/examples/jspsych-resize.html +0 -34
  222. package/examples/jspsych-same-different-html.html +0 -28
  223. package/examples/jspsych-same-different-image.html +0 -33
  224. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  225. package/examples/jspsych-serial-reaction-time.html +0 -54
  226. package/examples/jspsych-survey-html-form.html +0 -33
  227. package/examples/jspsych-survey-likert.html +0 -42
  228. package/examples/jspsych-survey-multi-choice.html +0 -40
  229. package/examples/jspsych-survey-multi-select.html +0 -42
  230. package/examples/jspsych-survey-text.html +0 -34
  231. package/examples/jspsych-video-button-response.html +0 -57
  232. package/examples/jspsych-video-keyboard-response.html +0 -53
  233. package/examples/jspsych-video-slider-response.html +0 -55
  234. package/examples/jspsych-visual-search-circle.html +0 -58
  235. package/examples/jspsych-vsl-animate-occlusion.html +0 -29
  236. package/examples/jspsych-vsl-grid-scene.html +0 -41
  237. package/examples/lexical-decision.html +0 -132
  238. package/examples/manual-preloading.html +0 -53
  239. package/examples/pause-unpause.html +0 -33
  240. package/examples/progress-bar.html +0 -62
  241. package/examples/sound/hammer.mp3 +0 -0
  242. package/examples/sound/sound.mp3 +0 -0
  243. package/examples/sound/speech_blue.mp3 +0 -0
  244. package/examples/sound/speech_green.mp3 +0 -0
  245. package/examples/sound/speech_joke.mp3 +0 -0
  246. package/examples/sound/speech_red.mp3 +0 -0
  247. package/examples/sound/tone.mp3 +0 -0
  248. package/examples/timeline-variables-sampling.html +0 -50
  249. package/examples/timeline-variables.html +0 -55
  250. package/examples/video/sample_video.mp4 +0 -0
  251. package/jspsych.js +0 -2796
  252. package/license.txt +0 -21
  253. package/mkdocs.yml +0 -104
  254. package/plugins/jspsych-animation.js +0 -189
  255. package/plugins/jspsych-audio-button-response.js +0 -247
  256. package/plugins/jspsych-audio-keyboard-response.js +0 -204
  257. package/plugins/jspsych-audio-slider-response.js +0 -262
  258. package/plugins/jspsych-call-function.js +0 -58
  259. package/plugins/jspsych-canvas-button-response.js +0 -199
  260. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  261. package/plugins/jspsych-canvas-slider-response.js +0 -207
  262. package/plugins/jspsych-categorize-animation.js +0 -266
  263. package/plugins/jspsych-categorize-html.js +0 -220
  264. package/plugins/jspsych-categorize-image.js +0 -222
  265. package/plugins/jspsych-cloze.js +0 -112
  266. package/plugins/jspsych-external-html.js +0 -112
  267. package/plugins/jspsych-free-sort.js +0 -444
  268. package/plugins/jspsych-fullscreen.js +0 -104
  269. package/plugins/jspsych-html-button-response.js +0 -188
  270. package/plugins/jspsych-html-keyboard-response.js +0 -149
  271. package/plugins/jspsych-html-slider-response.js +0 -202
  272. package/plugins/jspsych-iat-html.js +0 -284
  273. package/plugins/jspsych-iat-image.js +0 -286
  274. package/plugins/jspsych-image-button-response.js +0 -311
  275. package/plugins/jspsych-image-keyboard-response.js +0 -247
  276. package/plugins/jspsych-image-slider-response.js +0 -353
  277. package/plugins/jspsych-instructions.js +0 -237
  278. package/plugins/jspsych-maxdiff.js +0 -174
  279. package/plugins/jspsych-rdk.js +0 -1373
  280. package/plugins/jspsych-reconstruction.js +0 -134
  281. package/plugins/jspsych-resize.js +0 -166
  282. package/plugins/jspsych-same-different-html.js +0 -168
  283. package/plugins/jspsych-same-different-image.js +0 -169
  284. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -213
  285. package/plugins/jspsych-serial-reaction-time.js +0 -247
  286. package/plugins/jspsych-survey-html-form.js +0 -171
  287. package/plugins/jspsych-survey-likert.js +0 -195
  288. package/plugins/jspsych-survey-multi-choice.js +0 -208
  289. package/plugins/jspsych-survey-multi-select.js +0 -232
  290. package/plugins/jspsych-survey-text.js +0 -185
  291. package/plugins/jspsych-video-button-response.js +0 -320
  292. package/plugins/jspsych-video-keyboard-response.js +0 -279
  293. package/plugins/jspsych-video-slider-response.js +0 -351
  294. package/plugins/jspsych-visual-search-circle.js +0 -259
  295. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  296. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  297. package/plugins/template/jspsych-plugin-template.js +0 -35
  298. package/tests/README.md +0 -7
  299. package/tests/jsPsych/default-iti.test.js +0 -51
  300. package/tests/jsPsych/default-parameters.test.js +0 -58
  301. package/tests/jsPsych/endexperiment.test.js +0 -49
  302. package/tests/jsPsych/events.test.js +0 -369
  303. package/tests/jsPsych/init.test.js +0 -48
  304. package/tests/jsPsych/loads.test.js +0 -7
  305. package/tests/jsPsych/min-rt.test.js +0 -58
  306. package/tests/jsPsych/progressbar.test.js +0 -202
  307. package/tests/jsPsych/timeline-variables.test.js +0 -254
  308. package/tests/jsPsych/timelines.test.js +0 -498
  309. package/tests/jsPsych.data/datacollection.test.js +0 -116
  310. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  311. package/tests/jsPsych.data/datamodule.test.js +0 -152
  312. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  313. package/tests/jsPsych.data/interactions.test.js +0 -109
  314. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -144
  315. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  316. package/tests/jsPsych.utils/utils.test.js +0 -58
  317. package/tests/media/blue.png +0 -0
  318. package/tests/media/orange.png +0 -0
  319. package/tests/media/sample_video.mp4 +0 -0
  320. package/tests/media/sound.mp3 +0 -0
  321. package/tests/plugins/plugin-animation.test.js +0 -35
  322. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  323. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  324. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  325. package/tests/plugins/plugin-call-function.test.js +0 -49
  326. package/tests/plugins/plugin-categorize-animation.test.js +0 -274
  327. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  328. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  329. package/tests/plugins/plugin-cloze.test.js +0 -140
  330. package/tests/plugins/plugin-free-sort.test.js +0 -112
  331. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  332. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  333. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  334. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  335. package/tests/plugins/plugin-iat-html.test.js +0 -328
  336. package/tests/plugins/plugin-iat-image.test.js +0 -308
  337. package/tests/plugins/plugin-image-button-response.test.js +0 -183
  338. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -154
  339. package/tests/plugins/plugin-image-slider-response.test.js +0 -183
  340. package/tests/plugins/plugin-instructions.test.js +0 -66
  341. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  342. package/tests/plugins/plugin-rdk.test.js +0 -17
  343. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  344. package/tests/plugins/plugin-resize.test.js +0 -16
  345. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  346. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  347. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  348. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -69
  349. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  350. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  351. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -48
  352. package/tests/plugins/plugin-survey-multi-select.test.js +0 -72
  353. package/tests/plugins/plugin-survey-text.test.js +0 -115
  354. package/tests/plugins/plugin-video-button-response.test.js +0 -35
  355. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -35
  356. package/tests/plugins/plugin-video-slider-response.test.js +0 -34
  357. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  358. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  359. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  360. package/tests/testing-utils.js +0 -13
@@ -1,42 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
- var trial_1 = {
11
- type: 'html-keyboard-response',
12
- stimulus: '<p style="color: red; font-size: 48px; font-weight: bold;">GREEN</p>',
13
- choices: ['y', 'n'],
14
- prompt: '<p>Does the color match the word? (Y or N)</p>'
15
- }
16
-
17
- var trial_2 = {
18
- type: 'html-keyboard-response',
19
- stimulus: '<p style="color: red; font-size: 48px; font-weight: bold;">RED</p>',
20
- choices: ['y', 'n'],
21
- trial_duration: 5000,
22
- prompt: '<p>Does the color match the word? (Y or N; 5s time limit)</p>'
23
- }
24
-
25
- var trial_3 = {
26
- type: 'html-keyboard-response',
27
- stimulus: '<p style="color: orange; font-size: 48px; font-weight: bold;">BLUE</p>',
28
- choices: jsPsych.NO_KEYS,
29
- trial_duration: 2000,
30
- prompt: '<p>No response allowed. 2s wait.</p>'
31
- }
32
-
33
- jsPsych.init({
34
- timeline: [trial_1, trial_2, trial_3],
35
- on_finish: function() {
36
- jsPsych.data.displayData();
37
- },
38
- default_iti: 250
39
- });
40
- </script>
41
-
42
- </html>
@@ -1,53 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-html-slider-response.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- <style>
8
- img {
9
- width: 300px;
10
- }
11
- </style>
12
- </head>
13
- <body></body>
14
- <script>
15
-
16
- var trial_1 = {
17
- type: 'html-slider-response',
18
- stimulus: '<div style="margin: 50px auto; width: 100px; height: 100px; background-color: rgb(46, 26, 122);"></div>',
19
- labels: ['Purple', 'Blue'],
20
- slider_width: 500,
21
- require_movement: true,
22
- prompt: '<p>Is this color closer to purple or blue? Use the slider above.</p>'
23
- }
24
-
25
- var trial_2 = {
26
- type: 'html-slider-response',
27
- stimulus: '<div style="margin: 50px auto; width: 100px; height: 100px; background-color: rgb(29, 23, 138)"></div>',
28
- labels: ['Purple', 'Blue'],
29
- slider_start: 10,
30
- slider_width: 500,
31
- prompt: '<p>Is this color closer to purple or blue? Use the slider above. (5s time limit; custom starting value).</p>',
32
- trial_duration: 5000
33
- }
34
-
35
- var trial_3 = {
36
- type: 'html-slider-response',
37
- stimulus: '<div style="margin: 50px auto; width: 100px; height: 100px; background-color: rgb(63, 17, 129)"></div>',
38
- labels: ['Purple', 'Blue'],
39
- prompt: '<p>Is this color closer to purple or blue? Use the slider above. (1s display).</p>',
40
- slider_width: 500,
41
- stimulus_duration: 1000
42
- }
43
-
44
- jsPsych.init({
45
- timeline: [trial_1, trial_2, trial_3],
46
- on_finish: function() {
47
- jsPsych.data.displayData();
48
- },
49
- default_iti: 250
50
- });
51
- </script>
52
-
53
- </html>
@@ -1,510 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>IAT Example</title>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-iat-image.js"></script>
7
- <script src="../plugins/jspsych-iat-html.js"></script>
8
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
9
- <link href="../css/jspsych.css" rel="stylesheet">
10
- </head>
11
- <body>
12
- </body>
13
- <script>
14
-
15
- var welcome_block = {
16
- type: 'html-keyboard-response',
17
- stimulus: '<p>Welcome to the Age Task. In this study you will ' +
18
- 'complete an Implicit Association Test (IAT) in which you ' +
19
- 'will be asked to sort pictures and words into groups as ' +
20
- 'fast as you can.</p><p>Press any key to begin.</p>',
21
- post_trial_gap: 1500
22
- };
23
-
24
- var category_block = {
25
- type: 'html-keyboard-response',
26
- stimulus: '<p>Next, you will use the "E" and "I" computer keys ' + 'to categorize items into groups as fast as you can. ' +
27
- 'These are the four groups and the items that belong to each:<br><br>' +
28
- '<strong>Good</strong>:<br>' + 'Fabulous, Excitement, Glorious, Cheerful, Cherish, ' +
29
- 'Enjoy, Delightful, Joyous<br><br>' + '<strong>Bad</strong>:<br>' + 'Humiliate, ' +
30
- 'Evil, Grief, Yucky, Detest, Poison, Abuse, Despise<br><br>' +
31
- '<strong>Old</strong>:<br>' + "<img src='img/age/of1.jpg'></img> " +
32
- "<img src='img/age/of2.jpg'></img> " + "<img src='img/age/of3.jpg'></img> " +
33
- "<img src='img/age/om1.jpg'></img> " + "<img src='img/age/om2.jpg'></img> " +
34
- "<img src='img/age/om3.jpg'></img><br><br>" + '<strong>Young</strong>:<br>' +
35
- "<img src='img/age/yf1.jpg'></img> " + "<img src='img/age/yf4.jpg'></img> " +
36
- "<img src='img/age/yf5.jpg'></img> " + "<img src='img/age/ym2.jpg'></img> " +
37
- "<img src='img/age/ym3.jpg'></img> " + "<img src='img/age/ym5.jpg'></img><br><br>" +
38
- "Press any key to continue.</p>",
39
- post_trial_gap: 1500
40
- };
41
-
42
- var instructions_block = {
43
- type: 'html-keyboard-response',
44
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'><p>Press E for:<br><strong>OLD</strong></p></div>" +
45
- "<div style='position: absolute; top: 18%; right: 20%'><p>Press I for:<br><strong>YOUNG</strong></p></div>" +
46
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Put a left finger on the <strong>E</strong> key for items that belong to the Old People category. Put a right finger on the " +
47
- "<strong>I</strong> key for items that belong to the Young People " +
48
- "category. Items will appear one at a time.<br><br>" + "If you " +
49
- "make a mistake, a red X will appear. Press the keys listed below " +
50
- "to continue. Go as fast as you can while being accurate.<br><br> " +
51
- "Press the any key when you are ready to start.</div>",
52
- };
53
-
54
-
55
- var trial_block = {
56
- timeline: [
57
- {
58
- type: 'iat-image',
59
- stimulus: jsPsych.timelineVariable('stimulus'),
60
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
61
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
62
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
63
- force_correct_key_press: true,
64
- display_feedback: true,
65
- trial_duration: 3000, //Only if display_feedback is false
66
- left_category_key: 'E',
67
- right_category_key: 'I',
68
- left_category_label: ['OLD'],
69
- right_category_label: ['YOUNG'],
70
- response_ends_trial: true,
71
- data: { iat_type: 'practice' }
72
- }
73
- ],
74
- timeline_variables: [
75
- {stimulus: "img/age/of1.jpg", stim_key_association: "left"},
76
- {stimulus: "img/age/of2.jpg", stim_key_association: "left"},
77
- {stimulus: "img/age/of3.jpg", stim_key_association: "left"},
78
- {stimulus: "img/age/om1.jpg", stim_key_association: "left"},
79
- {stimulus: "img/age/om2.jpg", stim_key_association: "left"},
80
- {stimulus: "img/age/om3.jpg", stim_key_association: "left"},
81
- {stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
82
- {stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
83
- {stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
84
- {stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
85
- {stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
86
- {stimulus: "img/age/ym5.jpg", stim_key_association: "right"}
87
- ],
88
- randomize_order: true,
89
- repetitions: 2
90
- };
91
-
92
- var instructions_block2 = {
93
- type: 'html-keyboard-response',
94
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br><strong>BAD</strong></div>" +
95
- "<div style='position: absolute; top: 18%; right: 20%'>Press I for:<br><strong>GOOD</strong></div>" +
96
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Put a left finger on the <strong>E</strong> key for items that " +
97
- "belong to the Bad category. Put a right finger on the " +
98
- "<strong>I</strong> key for items that belong to the Good " +
99
- "category. Items will appear one at a time.<br><br>" + "If you " +
100
- "make a mistake, a red X will appear. Press the keys listed below " +
101
- "to continue. Go as fast as you can while being accurate.<br><br> " +
102
- "Press the any key when you are ready to start.</div>",
103
- };
104
-
105
- var trial_block2 = {
106
- timeline: [
107
- {
108
- type: 'iat-html',
109
- stimulus: jsPsych.timelineVariable('stimulus'),
110
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
111
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
112
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
113
- force_correct_key_press: true,
114
- display_feedback: true,
115
- trial_duration: 3000, //Only if display_feedback is false
116
- left_category_key: 'E',
117
- right_category_key: 'I',
118
- left_category_label: ['BAD'],
119
- right_category_label: ['GOOD'],
120
- response_ends_trial: true,
121
- data: { iat_type: 'practice' }
122
- }
123
- ],
124
- timeline_variables: [
125
- {stimulus: "Humiliate", stim_key_association: "left"},
126
- {stimulus: "Evil", stim_key_association: "left"},
127
- {stimulus: "Grief", stim_key_association: "left"},
128
- {stimulus: "Yucky", stim_key_association: "left"},
129
- {stimulus: "Detest", stim_key_association: "left"},
130
- {stimulus: "Poison", stim_key_association: "left"},
131
- {stimulus: "Abuse", stim_key_association: "left"},
132
- {stimulus: "Despise", stim_key_association: "left"},
133
- {stimulus: "Fabulous", stim_key_association: "right"},
134
- {stimulus: "Excitement", stim_key_association: "right"},
135
- {stimulus: "Glorious", stim_key_association: "right"},
136
- {stimulus: "Cheerful", stim_key_association: "right"},
137
- {stimulus: "Cherish", stim_key_association: "right"},
138
- {stimulus: "Enjoy", stim_key_association: "right"},
139
- {stimulus: "Delightful", stim_key_association: "right"},
140
- {stimulus: "Joyous", stim_key_association: "right"}
141
- ],
142
- randomize_order: true,
143
- repetitions: 2
144
- };
145
-
146
- var instructions_block3 = {
147
- type: 'html-keyboard-response',
148
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br> " +
149
- "<strong>BAD</strong><br>" + "or<br>" + "<strong>OLD</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>" +
150
- "Press I for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" + "<strong>YOUNG</strong></div>" +
151
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Use <strong>E</strong> for Bad and for " +
152
- "Old People<br>" + "Use <strong>I</strong> for Good and for Young People<br>" +
153
- "Each item belongs to only one category.<br><br>" + "If you " +
154
- "make a mistake, a red X will appear. Press the keys listed below " +
155
- "to continue. Go as fast as you can while being accurate.<br><br> " +
156
- "Press the any key when you are ready to start.</div>",
157
- };
158
-
159
- var trial_block3 = {
160
- timeline: [
161
- {
162
- type: jsPsych.timelineVariable('type'),
163
- stimulus: jsPsych.timelineVariable('stimulus'),
164
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
165
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
166
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
167
- force_correct_key_press: true,
168
- display_feedback: true,
169
- trial_duration: 3000, //Only if display_feedback is false
170
- left_category_key: 'E',
171
- right_category_key: 'I',
172
- left_category_label: ['BAD', 'OLD'],
173
- right_category_label: ['GOOD', 'YOUNG'],
174
- response_ends_trial: true,
175
- data: { iat_type: 'practice' }
176
- }
177
- ],
178
- timeline_variables: [
179
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "left"},
180
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "left"},
181
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "left"},
182
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "left"},
183
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "left"},
184
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "left"},
185
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
186
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
187
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
188
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
189
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
190
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "right"},
191
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
192
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
193
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
194
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
195
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
196
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
197
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
198
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
199
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
200
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
201
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
202
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
203
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
204
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
205
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
206
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
207
- ],
208
- randomize_order: true,
209
- repetitions: 1
210
- };
211
-
212
- var instructions_block4 = {
213
- type: 'html-keyboard-response',
214
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br> " +
215
- "<strong>BAD</strong><br>" + "or<br>" + "<strong>OLD</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>" +
216
- "Press I for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" + "<strong>YOUNG</strong></div>" +
217
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>This is the same as the previous part.<br>" + "Use <strong>E</strong> for Bad and for " +
218
- "Old People<br>" + "Use <strong>I</strong> for Good and for Young People<br>" +
219
- "Each item belongs to only one category.<br><br>" + "If you " +
220
- "make a mistake, a red X will appear. Press the keys listed below " +
221
- "to continue. Go as fast as you can while being accurate.<br><br> " +
222
- "Press the any key when you are ready to start.</div>",
223
- };
224
-
225
- var trial_block4 = {
226
- timeline: [
227
- {
228
- type: jsPsych.timelineVariable('type'),
229
- is_html: jsPsych.timelineVariable('is_html'),
230
- stimulus: jsPsych.timelineVariable('stimulus'),
231
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
232
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
233
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
234
- force_correct_key_press: true,
235
- display_feedback: true,
236
- trial_duration: 3000, //Only if display_feedback is false
237
- left_category_key: 'E',
238
- right_category_key: 'I',
239
- left_category_label: ['BAD', 'OLD'],
240
- right_category_label: ['GOOD', 'YOUNG'],
241
- response_ends_trial: true,
242
- data: { iat_type: 'bad-old' }
243
- }
244
- ],
245
- timeline_variables: [
246
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "left"},
247
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "left"},
248
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "left"},
249
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "left"},
250
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "left"},
251
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "left"},
252
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
253
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
254
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
255
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
256
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
257
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "right"},
258
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
259
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
260
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
261
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
262
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
263
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
264
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
265
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
266
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
267
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
268
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
269
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
270
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
271
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
272
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
273
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
274
- ],
275
- randomize_order: true,
276
- repetitions: 2
277
- };
278
-
279
- var instructions_block5 = {
280
- type: 'html-keyboard-response',
281
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br>" + "<strong>YOUNG</strong></div>" +
282
- "<div style='position: absolute; top: 18%; right: 20%'>Press I for:<br>" + "<strong>OLD</strong></div>" +
283
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Watch out, the labels have changed positions!<br>" +
284
- "Use <strong>E</strong> for Young People<br>" + "Use <strong>I</strong> for Old People<br><br>" +
285
- "If you make a mistake, a red X will appear. Press the keys listed below " +
286
- "to continue. Go as fast as you can while being accurate.<br><br> " +
287
- "Press the any key when you are ready to start.</div>"
288
- };
289
-
290
- var trial_block5 = {
291
- timeline: [
292
- {
293
- type: 'iat-image',
294
- is_html: false,
295
- stimulus: jsPsych.timelineVariable('stimulus'),
296
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
297
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
298
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
299
- force_correct_key_press: true,
300
- display_feedback: true,
301
- trial_duration: 3000, //Only if display_feedback is false
302
- left_category_key: 'E',
303
- right_category_key: 'I',
304
- left_category_label: ['YOUNG'],
305
- right_category_label: ['OLD'],
306
- response_ends_trial: true,
307
- data: { iat_type: 'practice' }
308
- }
309
- ],
310
- timeline_variables: [
311
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
312
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
313
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
314
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
315
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
316
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
317
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
318
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
319
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
320
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
321
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
322
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"}
323
- ],
324
- randomize_order: true,
325
- repetitions: 2
326
- };
327
-
328
- var instructions_block6 = {
329
- type: 'html-keyboard-response',
330
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br>" + "<strong>BAD</strong><br>" + "or<br>" +
331
- "<strong>YOUNG</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>Press I for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" +
332
- "<strong>OLD</strong></div>" +
333
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Use <strong>E</strong> for Bad and for Young People<br>" +
334
- "Use <strong>I</strong> for Good and for Old People<br><br>" +
335
- "If you make a mistake, a red X will appear. Press the keys listed below " +
336
- "to continue. Go as fast as you can while being accurate.<br><br> " +
337
- "Press the any key when you are ready to start.</div>"
338
- };
339
-
340
- var trial_block6 = {
341
- timeline: [
342
- {
343
- type: jsPsych.timelineVariable('type'),
344
- stimulus: jsPsych.timelineVariable('stimulus'),
345
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
346
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
347
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
348
- force_correct_key_press: true,
349
- display_feedback: true,
350
- trial_duration: 3000, //Only if display_feedback is false
351
- left_category_key: 'E',
352
- right_category_key: 'I',
353
- left_category_label: ['BAD', 'YOUNG'],
354
- right_category_label: ['GOOD', 'OLD'],
355
- response_ends_trial: true,
356
- data: {iat_type: 'practice'}
357
- }
358
- ],
359
- timeline_variables: [
360
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
361
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
362
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
363
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
364
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
365
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
366
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
367
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
368
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
369
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
370
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
371
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"},
372
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
373
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
374
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
375
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
376
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
377
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
378
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
379
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
380
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
381
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
382
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
383
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
384
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
385
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
386
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
387
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
388
- ],
389
- randomize_order: true,
390
- repetitions: 1
391
- };
392
-
393
- var instructions_block7 = {
394
- type: 'html-keyboard-response',
395
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br>" + "<strong>Bad</strong><br>" + "or<br>" +
396
- "<strong>Young People</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>Press I for:<br>" + "<strong>Good</strong><br>" + "or<br>" +
397
- "<strong>Old People</strong></div>" +
398
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>This is the same as the previous part<br>" +
399
- "Use <strong>E</strong> for Bad and for Young People<br>" +
400
- "Use <strong>I</strong> for Good and for Old People<br>" +
401
- "Each item belongs to only one category<br><br>" +
402
- "If you make a mistake, a red X will appear. Press the keys listed below " +
403
- "to continue. Go as fast as you can while being accurate.<br><br> " +
404
- "Press the any key when you are ready to start.</div>"
405
- };
406
-
407
- var trial_block7 = {
408
- timeline: [
409
- {
410
- type: jsPsych.timelineVariable('type'),
411
- is_html: jsPsych.timelineVariable('is_html'),
412
- stimulus: jsPsych.timelineVariable('stimulus'),
413
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
414
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
415
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
416
- force_correct_key_press: true,
417
- display_feedback: true,
418
- trial_duration: 3000, //Only if display_feedback is false
419
- left_category_key: 'E',
420
- right_category_key: 'I',
421
- left_category_label: ['BAD', 'YOUNG'],
422
- right_category_label: ['GOOD', 'OLD'],
423
- response_ends_trial: true,
424
- data: {iat_type: 'bad-young'}
425
- }
426
- ],
427
- timeline_variables: [
428
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
429
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
430
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
431
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
432
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
433
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
434
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
435
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
436
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
437
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
438
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
439
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"},
440
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
441
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
442
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
443
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
444
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
445
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
446
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
447
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
448
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
449
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
450
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
451
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
452
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
453
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
454
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
455
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
456
- ],
457
- randomize_order: true,
458
- repetitions: 2
459
- };
460
-
461
- var debrief_block = {
462
- type: "html-keyboard-response",
463
- stimulus: function() {
464
- // calculate D-score from https://faculty.washington.edu/agg/pdf/GB&N.JPSP.2003.pdf
465
- // first find mean RT
466
- var bad_old = jsPsych.data.get().filter({iat_type: 'bad-old'}).filterCustom(function(x) { return x.rt < 10000 });
467
- var mean_correct_responses_bad_old = bad_old.filter({correct: true}).select('rt').mean();
468
- var bad_young = jsPsych.data.get().filter({iat_type: 'bad-young'}).filterCustom(function(x) { return x.rt < 10000 });
469
- var mean_correct_responses_bad_young = bad_young.filter({correct: true}).select('rt').mean();
470
-
471
- // get overall sd
472
- var sd = bad_old.join(bad_young).filter({correct: true}).select('rt').sd();
473
-
474
- var d = (mean_correct_responses_bad_young - mean_correct_responses_bad_old) / sd;
475
-
476
- return "<p>You're done! Below is some information about how you performed.</p>"+
477
- "<p>When the pairs were BAD/YOUNG and GOOD/OLD, it took you an average of <strong>"+Math.floor(mean_correct_responses_bad_young)+"ms</strong> to respond.</p>"+
478
- "<p>When the pairs were BAD/OLD and GOOD/YOUNG, it took you an average of <strong>"+Math.floor(mean_correct_responses_bad_old)+"ms</strong> to respond.</p>"+
479
- "<p>Your D score, an index of performance that takes into account this difference and the overall level of variability in your responses, is <strong>"+d.toFixed(2)+"</strong></p>"+
480
- "<p>For reference, the Project Implicit IAT website labels D scores above 0.15 as a slight bias, scores above 0.35 as a moderate bias, and scores above 0.65 a strong bias.</p>"
481
- }
482
- };
483
-
484
- var timeline = [];
485
- timeline.push(welcome_block);
486
- timeline.push(category_block);
487
- timeline.push(instructions_block);
488
- timeline.push(trial_block);
489
- timeline.push(instructions_block2);
490
- timeline.push(trial_block2);
491
- timeline.push(instructions_block3);
492
- timeline.push(trial_block3);
493
- timeline.push(instructions_block4);
494
- timeline.push(trial_block4);
495
- timeline.push(instructions_block5);
496
- timeline.push(trial_block5);
497
- timeline.push(instructions_block6);
498
- timeline.push(trial_block6);
499
- timeline.push(instructions_block7);
500
- timeline.push(trial_block7);
501
- timeline.push(debrief_block);
502
-
503
- jsPsych.init({
504
- timeline: timeline,
505
- on_finish: function() {
506
- jsPsych.data.displayData();
507
- }
508
- });
509
- </script>
510
- </html>