javascript - 我怎样才能优化这个jquery
问题描述
我是 jquery 的新手,只是坚持这一点。
<script type="text/javascript">
$(document).ready(function()
{
$(".f:nth-of-type(1)").hover(function(){
$(this).parent(this).toggleClass('fa');
});
$(".f:nth-of-type(2)").hover(function(){
$(this).parent(this).toggleClass('fb');
});
$(".f:nth-of-type(3)").hover(function(){
$(this).parent(this).toggleClass('fc');
});
$(".f:nth-of-type(4)").hover(function(){
$(this).parent(this).toggleClass('fd');
});
});
</script>
如何缩短此代码,以便我只需要编写一次函数并且它的工作原理相同。
解决方案
试试这样。将您的类分配到一个数组中并循环遍历它。
$(document).ready(function()
{
var classes = ["fa","fb","fc","fd"]
for(i=1;i<=classes.length; i++){
bindFn(i);
}
function bindFn(i){
$(".f:nth-of-type("+i+")").hover(function(){
$(this).parent(this).toggleClass(classes[i-1]);
});
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="f">hi1</li>
<li class="f">hi2</li>
<li class="f">hi3</li>
<li class="f">hi4</li>
</ul>
推荐阅读
- asp.net-mvc - IUserStore 实现需要包含 IUserTwoFactorStore
- r - RStudio 没有响应大型线性优化
- python - Matlab 到 Python - 矩阵/数组的形成和运算
- c - C - 在 for 循环中产生不同值的整数数组
- angular - 如何从浏览器中隐藏 Angular 应用程序的源代码
- catel - Orchestra.Shell.MahApps -> Orchestra.Windows.MetroDataWindow -> ValidateData 错误?
- javascript - 如何模拟鼠标单击/击键以选择 Puppeteer 中每页的列表数量?
- android - Admob 测试 ID 不断变化
- django - 将 Celery 任务函数的 .delay() 和periodic_task 发送到不同的队列
- java - Google Sheets API 的表格会自动更新吗