error-handling - eslint: no-undef - `$` 未定义"
问题描述
我试图用 Tampermonkey 运行这个脚本,但我得到错误:eslint:no-undef -$
未定义“我做错了什么?
脚本:
(function() {
'use strict';
restore();
$('span.tag').each((n, span) => {
let input = document.querySelector(`input#${span.getAttribute('for')}`);
span.addEventListener('click', () => {
store(`tags`, input.value, input.checked);
});
});
$('#board, #title').change((e) => {
store(e.target.id, e.target.value);
});
function restore(){
let json = localStorage.getItem('create') || "{}";
let data = JSON.parse(json);
Object.keys(data).forEach(key => {
switch(key){
case "tags":
data[key].forEach(val => {
document.querySelector(`input[value="${val}"]`).setAttribute('checked', 'checked');
document.querySelector(`span[for="create_${val}"]`).classList.add('selected');
});
break;
case "board":
document.querySelector(`#board option[value="${data[key]}"]`).setAttribute('selected', 'selected');
default:
document.querySelector(`#${key}`).value = data[key];
break;
}
});
}
function store(key, value, checked) {
let json = localStorage.getItem('create') || "{}";
let data = JSON.parse(json);
if(arguments.length === 3){
data[key] = new Set(data[key]);
if(checked) {
data[key].add(value);
} else {
data[key].delete(value);
}
data[key] = Array.from(data[key]);
} else {
data[key] = value;
}
json = JSON.stringify(data);
localStorage.setItem('create', json);
}
})();
解决方案
您需要在一切之前定义全局变量。只需在顶部包含这一行:
/* globals jQuery, $, waitForKeyElements */
并且不要忘记在两==UserScript==
行之间要求 jquery:
// @require http://code.jquery.com/jquery-3.x-git.min.js
推荐阅读
- ansible - 复制 SSH 密钥的 Ansible 任务
- .net-core - 没有 ASP.Net 的 grpc-dotnet 服务器
- python - 对包含浮点数和字符串的列表值中的浮点数执行操作
- jenkins - 我们如何将一些数据从 Jenkins 发送回 bitbucket 服务器?
- flutter - admob_flutter Flutter 包仅在 Debug 模式下导致错误
- grpc - grpc有什么C插件吗?grpc 是否支持 protobuf-c-rpc?
- gstreamer - Ubuntu 20.04 上的 GStreamer 1.18.4 未定义符号 gst_rtcp_buffer_add_packet
- sql - 如何从 Patient_id 中找到最常见的数字
- c# - 重定向到当前页面的最佳实践
- python - pd.plot 中的 xticks 到底是什么意思?pd.plot(x,y,xticks)