gpt4 book ai didi

javascript - addEventListener 的 Onclick 事件不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 21:42:15 25 4
gpt4 key购买 nike

检查这段代码:

<script>
var next = document.getElementById("next");
var prev = document.getElementById("prev");

next.addEventListener("click",next(),false);
prev.addEventListener("click",prev(),false);

function next(e) {
e.preventDefault();
prev.style.display = "block";
next.style.display = "none";
}
function prev(e) {
e.preventDefault();
prev.style.display = "none";
next.style.display = "block";
}
</script>

<div id="nav">
<a href="javascript:void;" id="prev">&lsaquo;&lsaquo;&lsaquo;</a>
<a href="javascript:void;" id="next">&rsaquo;&rsaquo;&rsaquo;</a>
</div>

我不知道为什么这不起作用。我正在 <body> 之前加载脚本标签。请帮忙。

它给我错误:Uncaught TypeError: Property 'next' of object [object Object] is not a function

最佳答案

当您将括号添加到函数时,将立即调用函数并将结果(在本例中为未定义)返回给 addEventListener。

你想引用函数,而不是调用它们

next.addEventListener("click", next, false);
prev.addEventListener("click", prev, false);

下一个错误是您对变量和函数使用了相同的名称,因此当您说 next.style 时,它现在是函数,而不是元素,因为函数名称覆盖了变量

var next_elem = document.getElementById("next");
var prev_elem = document.getElementById("prev");

next_elem.addEventListener("click", next_fn, false);
prev_elem.addEventListener("click", prev_fn, false);

function next_fn(e) {
e.preventDefault();
prev_elem.style.display = "block";
next_elem.style.display = "none";
}

function prev_fn(e) {
e.preventDefault();
prev_elem.style.display = "none";
next_elem.style.display = "block";
}

关于javascript - addEventListener 的 Onclick 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22828268/

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