
本文介绍在 qualtrics 问卷中通过唯一 id 与通用类名结合的方式,准确记录用户点击的特定外部链接(如三个慈善机构网址),并自动提交至嵌入数据,避免 id 重复导致的事件绑定失效问题。
在 Qualtrics 中实现“点击即追踪具体 URL”的核心前提是:HTML 元素必须符合规范,且 JavaScript 逻辑需能区分不同链接的上下文。你原始代码中为所有 标签使用了相同的 id="extLink",这违反了 HTML 规范(id 必须全局唯一),导致 jQuery 的 #extLink 选择器仅匹配第一个元素,后续链接点击无法被正确捕获。
✅ 正确做法分两步:
1. 修改 HTML:为每个链接分配唯一 id,同时添加统一 class
保留语义清晰的标识,例如按顺序或机构名称命名,并统一添加 class="extLink" 便于批量绑定事件:
Direct Relief — Support for people affected by emergenciesWater.org — Provision of safe and accessible waterFeeding America — Works on hunger relief
⚠️ 注意:id 值中避免空格和特殊字符(推荐下划线 _ 或短横线 -),确保可安全用于 JavaScript 和 Qualtrics 嵌入数据键名。
2. 更新 JavaScript:利用 this.id 动态生成嵌入数据字段
使用类选择器 .extLink 绑定事件,点击时自动提取当前链接的 id,拼接为嵌入数据键(如 "extLink_directrelief_clicked"),并设值为 "1":
Qualtrics.SurveyEngine.addOnload(function() {
jQuery('.extLink').click(function(event) {
// 阻止默认跳转(可选):若需先记录再跳转,取消下一行注释
// event.preventDefault();
// 动态生成嵌入数据键名,例如 "extLink_directrelief_clicked"
const clickedId = this.id + "_clicked";
// 写入 Qualtrics 嵌入数据
Qualtrics.SurveyEngine.setEmbeddedData(clickedId, "1");
// 自动触发下一题(模拟点击“下一步”按钮)
jQuery("#NextButton").click();
});
});✅ 效果验证:
- 用户点击 Direct Relief → 自动记录 extLink_directrelief_clicked = "1"
- 点击 Water.org → 记录 extLink_waterorg_clicked = "1"
- 所有未点击的链接对应字段保持为空(Qualtrics 中默认不创建未设置的嵌入数据)
? 进阶建议:
- 若需兼容多设备或防止重复提交,可在点击后禁用链接($(this).off('click').addClass('disabled'));
- 如需同时记录 URL、文本、时间戳等,可扩展 setEmbeddedData 调用,例如:
Qualtrics.SurveyEngine.setEmbeddedData("last_clicked_url", this.href); Qualtrics.SurveyEngine.setEmbeddedData("last_clicked_text", jQuery(this).text().trim());
该方案简洁、可扩展、符合前端最佳实践,确保每条外部链接的用户行为均可在后台数据中精确归因与分析。










