gpt4 book ai didi

javascript addEventlistener "click"不工作

转载 作者:数据小太阳 更新时间:2023-10-29 06:15:45 25 4
gpt4 key购买 nike

我正在努力将待办事项列表作为 Chrome 新标签扩展。

我的 html 文件:

<head>
</head>

<body>
<h2 id="toc-final">To Do List</h2>
<ul id="todoItems"></ul>
<input type="text" id="todo" name="todo" placeholder="What do you need to do?" style="width: 200px;">
<button id="newitem" value="Add Todo Item">Add</button>

<script type="text/javascript" src="indexdb.js"></script>
</body>
</html>

以前,按钮元素是带有 onClick() 的输入类型,但 Chrome 不允许这样做。所以我不得不制作一个 javascript 函数,当它被点击时会触发。在我的 indexdb.js 中:

var woosToDo = {};
window.indexedDB = window.indexedDB || window.webkitIndexedDB ||
window.mozIndexedDB;

woosToDo.indexedDB = {};
woosToDo.indexedDB.db = null;

window.addEventListener("DOMContentLoaded", init, false);

window.addEventListener('DOMContentLoaded', function () {
document.getElementById("newitem").addEventListener("click", addTodo(), false);
});

...
...

function addTodo() {
var todo = document.getElementById("todo");
woosToDo.indexedDB.addTodo(todo.value);
todo.value = "";
}

为什么当我点击带有 id="newitem"的按钮时没有任何反应?

最佳答案

附加函数时,您首先执行它,然后将返回值 undefined 附加到事件。去掉括号:

.addEventListener("click", addTodo, false);

当您将 addTodo() 作为参数时,您并没有传递函数本身。它做的第一件事是执行函数并使用返回值作为参数。

由于没有return 语句的函数隐含地导致undefined,原始代码实际上是在运行该函数,然后附上:

.addEventListener("click", undefined, false);

关于javascript addEventlistener "click"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com