Javascript 如何在Firefox中使用此代码?目前,它只适用于Chrome
我正在制作一个简单的todolist应用程序,其他一切都很好,但我的删除项代码只在chrome浏览器中工作,没有其他浏览器。我甚至在最新的firefox版本中尝试过,但它似乎不起作用,我也不知道为什么 代码如下:Javascript 如何在Firefox中使用此代码?目前,它只适用于Chrome,javascript,Javascript,我正在制作一个简单的todolist应用程序,其他一切都很好,但我的删除项代码只在chrome浏览器中工作,没有其他浏览器。我甚至在最新的firefox版本中尝试过,但它似乎不起作用,我也不知道为什么 代码如下: function removeTask(e) { if (e.target.classList.contains("del")) { //e.target.parentElement.remove(); let item = e.target.p
function removeTask(e) {
if (e.target.classList.contains("del")) {
//e.target.parentElement.remove();
let item = e.target.parentElement.childNodes[0].textContent
.replace(/[\n\r]+|[\s]{2,}/g, " ")
.trim();
console.log(item);
let url = `/items/${item}`;
http
.delete(url)
.then(reloader())
.catch((err) => console.log(err));
function reloader() {
location.reload();
}
}
}
上面的代码看起来不错,但每当我尝试删除一个项目时,它在chrome中工作,但在firefox(最新版本)和edge中不工作。我还没有检查其他浏览器
(更新:有时它会删除一个项目,但当我尝试删除另一个项目时,它不起作用)
在这里,您可以立即调用reloader()
,并将其返回值传递给。然后()
。相反,我认为应该在http.delete()
请求返回响应后重新加载页面。要执行此操作,请将函数传递到。然后
,而不是先调用它:
http
.delete(url)
.then(reloader)
.catch((err) => console.log(err));
由于reloader()
只调用location.reload()
,因此可以像这样摆脱reloader()
:
http
.delete(url)
.then(location.reload)
.catch((err) => console.log(err));
“我甚至在最新的firefox版本中尝试过它,但它似乎不起作用,我也不知道为什么。”当你在firefox中运行它时会发生什么?您在控制台中有任何错误吗?如果是,它们是什么?如果没有,会发生什么,你希望它做什么不同的事情?好吧,用和chrome相同的方式工作。。i、 e.删除列表项。它不是在firefox或edge中删除项目,而是在chrome中删除项目wrong@epascarello我懂了。但是,它在chrome中工作。不管怎样,我应该将其更改为什么?您正在执行该函数并设置它返回的值。它应该是一个参考。现在,它正在删除所有项目。除了one@ohnope有关调试代码的提示,请阅读。
http
.delete(url)
.then(location.reload)
.catch((err) => console.log(err));