gpt4 book ai didi

jQuery - 事件/onclick/重复代码

转载 作者:行者123 更新时间:2023-12-01 08:32:41 25 4
gpt4 key购买 nike

我正在制作自己的网站,但我仍然是 jQuery 的初学者。但我已经成功地做了我想做的事。一切正常,但我认为效率不够。重复的代码并不让我高兴,但我找不到避免这种情况的方法。你能帮忙吗?

我只是提供 jQuery 代码,因为一切正常:

$(document).ready(function() {
$("#main_content").load("home.html");

$("#home").click(function() {
$(this).addClass("active").siblings().removeClass("active");
$("#main_content").load("home.html");
});
$("#portfolio").click(function() {
$(this).addClass("active").siblings().removeClass("active");
$("#main_content").load("portfolio.html");
});
$("#blog").click(function() {
$(this).addClass("active").siblings().removeClass("active");
$("#main_content").load("blog.html");
});
$("#contact").click(function() {
$(this).addClass("active").siblings().removeClass("active");
$("#main_content").load("contact.html");
});
});

最佳答案

不要根据 idclick 处理程序绑定(bind)到每个元素,而是向每个元素添加一个公共(public)类并绑定(bind) click 处理程序对此。

然后就可以使用

$('#main_content').load(this.id + '.html');

创建正确的目标

$(document).ready(function() {
$("#main_content").load("home.html");

$('.link').on('click', function () {
$(this).addClass('active').siblings().removeClass('active');

$('#main_content').load(this.id + '.html');

console.log('Loading:', this.id + '.html'); // demo
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="link" id="home">Home</div>
<div class="link" id="portfolio">Portfolio</div>
<div class="link" id="blog">Blog</div>
<div class="link" id="contact">Contact</div>

关于jQuery - 事件/onclick/重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60018894/

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