下面有链接,请查看我在我的函数中遇到问题的代码,即使我已定义并调用它,但它的说法功能已定义但未使用。
function addDnDHandlers() {
var coffeeimages = document.getElementsByClassName("productarticlewide");
var shoppingcartDropZone = document.getElementById("shoppingcart");
var shoppingcart = document.querySelectorAll("#shoppingcart ul")[0];
for (var i = 0; i <= coffeeimages; i++) {
coffeeimages[i].addEventListener("dragstart", function (ev) {
ev.dataTransfer.effectAllowed = 'copy';
ev.dataTransfer.setData("Text", this.getAttribute("id"));
}, false);
}
shoppingcartDropZone.addEventListener("dragover", function (ev) {
if (ev.preventDefault) ev.preventDefault();
ev.dataTransfer.dropEffect = "copy";
return false;
}, false);
shoppingcartDropZone.addEventListener("drop", function (ev) {
if (ev.stopPropagation) ev.stopPropagation();
var coffeeId = ev.dataTransfer.getData("Text");
var element = document.getElementById(coffeeId);
addCoffeeToShoppingCart(element, coffeeId);
ev.stopPropagation();
return false;
}, false);
function addCoffeeToShoppingCart(item, id) {
var html = id + " " + item.getAttribute("data-price");
var liElement = document.createElement('li');
liElement.innerHTML = html;
shoppingcart.appendChild(liElement);
}
}
答案 0 :(得分:0)
您收到一个eslint错误,告知您已定义了一个未使用的功能。
这是为了帮助您通过指出过时的对象来保持代码清洁。
因为您是从HTML文件中定义的DOMContentLoaded
处理程序调用此函数,所以您的eslint不会意识到这一点。
您可以将事件处理程序定义添加到脚本文件的底部,并且所有内容都可以根据需要运行,并且您的eslint错误将消失:
function addDnDHandlers() {
/* ... your code here ... */
}
document.addEventListener("DOMContentLoaded", addDnDHandlers, false);
或者,您可以在代码中添加指令,告诉eslint在这种情况下忽略该规则违规。
通过在顶部添加ignore指令忽略整个文件中的此规则:
/* eslint-disable no-unused-vars */ (not recommended)
...或忽略特定行的规则:
function addDnDHandlers() { // eslint-disable-line no-unused-vars
您应该熟悉eslint中可用的规则和配置:https://eslint.org/docs/user-guide/