gpt4 book ai didi

Javascript/jQuery onclick 不工作

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:56 25 4
gpt4 key购买 nike

我制作了一个 test.html 文件来测试脚本。不知何故它不起作用,我不明白为什么什么都没有发生。脚本在 -tags 中并用 -tag 包裹,CSS 也有它的 -tags。为什么它不起作用?这是代码

<!DOCTYPE html>
<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
<script>
$('#menu li a').on('click', function() {
$('li a.current').removeClass('current');
$(this).addClass('current');
});
</script>
<style>
.current {
text-decoration: underline;
}

ul {
list-style-type: none;
}

a {
text-decoration: none;
}
</style>
</head>

<body>
<div id="menu">
<ul>
<li><a id="about-link" class="current" href="#">ABOUT</a></li>
<li><a id="events-link" href="#">EVENTS</a></li>
<li><a id="reviews-link" href="#">REVIEWS</a></li>
<li><a id="contact-link" href="#">CONTACT</a></li>
</ul>
</div>
</body>

</html>

最佳答案

因为您的绑定(bind)事件处理程序代码是在元素出现在 DOM 之前执行的, 事件未绑定(bind)到元素上。

要解决这个问题,你可以要么

  1. 将您的代码包装在 ready() 中回调,以便您的代码将在 DOM 时执行加载完毕
  2. 将您的脚本移动到<body> 的末尾, 所以所有元素都存在于 DOM 中你可以在上面绑定(bind)事件

代码:

$(document).ready(function () {
$('#menu li a').on('click', function () {
$('li a.current').removeClass('current');
$(this).addClass('current');
});
});

编辑

您还可以使用 load (不推荐)事件回调来绑定(bind)事件,但这会等待所有资源完全加载。

如果你想使用 Vanilla Javascript,你可以使用 DOMContentLoaded 事件 document .

关于Javascript/jQuery onclick 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222867/

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