gpt4 book ai didi

javascript - 编写重复函数的更好方法?

转载 作者:行者123 更新时间:2023-11-28 15:41:03 26 4
gpt4 key购买 nike

我创建了一个导航功能来水平滚动我的网页,这个功能很好,但我猜它可以写得更好。有人可以给我一些建议,告诉我我可以采取哪些逻辑明智的措施来最小化我的代码吗?

jQuery

$('.sectionOne').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-one').offset().left
});
});

$('.sectionTwo').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-two').offset().left
});
});

$('.sectionThree').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' :-$('.section-three').offset().left
});
});

$('.sectionFour').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-four').offset().left
});
});

$('.sectionFive').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-five').offset().left
});
});

$('.sectionSix').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-six').offset().left
});
});

$('.sectionSeven').click(function(e){
e.preventDefault();
$('nav').find('.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.section-seven').offset().left
});
});

HTML

<!-- Navigation -->
<nav>
<ol>
<li><a href="#" data-section="section-one" class="active sectionOne">1</a></li>
<li><a href="#" data-section="section-two" class="sectionTwo">2</a></li>
<li><a href="#" data-section="section-three" class="sectionThree">3</a></li>
<li><a href="#" data-section="section-four" class="sectionFour">4</a></li>
<li><a href="#" data-section="section-five" class="sectionFive">5</a></li>
<li><a href="#" data-section="section-six" class="sectionSix">6</a></li>
<li><a href="#" data-section="section-seven" class="sectionSeven">7</a></li>
</ol>
</nav>

最佳答案

看起来非常多余。怎么样:

$('nav a').click(function(e){
e.preventDefault();
$('nav a.active').removeClass('active');
$(this).addClass('active');

$('.scene').animate({
'marginLeft' : -$('.' + $(this).attr('data-section')).offset().left
});
});

关于javascript - 编写重复函数的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727099/

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