问题描述
我正在尝试创建一个 jsPsych 插件,用户可以在其中为每个刺激选择一种颜色。为此,我使用 jscolor。 jscolor 在 vanilla HTML 中运行良好,但是当我尝试将其合并到 jsPsych 插件中时,它不会加载 jscolor 库。
jsPsych.plugins["color-picker"] = (function() {
var plugin = {};
plugin.info = {
name: "color-picker",parameters: {
}
}
plugin.trial = function(display_element,trial) {
display_element.innerHTML += '<input data-jscolor="">'; // <-- This should show a color picker if jscolor.js is loaded.
// data saving
var trial_data = {
parameter_name: 'parameter value'
};
// end trial
jsPsych.finishTrial(trial_data);
};
return plugin; })();
我不明白为什么会发生这种情况。也许我需要在插件中加载库?添加 display_element.innerHTML += '<script src="library/jscolor.js"></script>';
也不起作用。
如何在我的插件中实现这一点?
解决方法
您可以在主实验脚本中加载 jscolor
库,然后引用插件中的函数。
您的插件现在可能无法运行的一个原因是试用开始后立即结束,因为调用 jsPsych.finishTrial()
时无需等待用户的任何输入。
您可能希望将 jsPsych.finishTrial()
调用移动到基于用户提交包含 jscolor
输入元素的表单而调用的函数中。