jquery - jQuery - 活动/点击/重复代码
问题描述
我正在制作自己的网站,但我仍然是 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");
});
});
解决方案
不是click
基于 将处理程序绑定到每个元素,而是为每个元素id
添加一个公共类并将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>
推荐阅读
- javascript - 使用 Vue 从 json 数据链接到外部 url
- wordpress - 为什么我的 Word Press 网站要从我上一个网站地址中查找图像
- bash - 在 bash 中检查 .pgn 不区分大小写的扩展名的更短方法
- database - 为什么 MongoDB 的索引不像它设置的那样工作?
- concurrency - LMAX Disruptor - 事件处理上的顺序和并行数据库/服务调用
- html - 在Angular2中对齐ngForm内容
- unreal-engine4 - 为什么在虚幻引擎4中滚动框不显示滚动?
- angular - RegisterPage.html:57 错误类型错误:无法读取未定义的属性“有效”(离子 4)
- jekyll - 启用缓存时 GitLab CI/CD jekyll 构建失败
- tcpdump - Debian Buster:“tcpdump -w 文件”仅适用于某些目录