javascript - js Bagaimana untuk menambah warna latar belakang li secara dinamik, dan memadam kelas yang sama dengan adik beradik li yang lain
天蓬老师
天蓬老师 2017-05-19 10:38:06
0
2
651
<ul>
    <li><a href="#banner"><span class="list-nav"></span></a></li>
    <li><a href="#section-one"><span class="list-nav"></span></a></li>
    <li><a href="#section-two"><span class="list-nav"></span></a></li>
    <li><a href="#section-three"><span class="list-nav"></span></a></li>       
</ul>

$('.list-nav').first().addClass("spanList");
$('.list-nav').on('click',function(){
    $(this).css("background","#6090b6");
    $(this).addClass("spanList");
    $(this).siblings().removeClass("spanList");
    var href = $(this).attr("href");
    var pos = $(href).offset().top;
    $("html,body").animate({scrollTop: pos}, 1000);       
    return false;
})

Saya ingin menukar warna ini apabila diklik, tetapi li lain pada tahap yang sama membatalkan warna latar belakang sedia ada. Dan apabila elemen adik beradik lain diklik, unsur adik beradik mendapat warna latar belakang dan warna latar belakang ini dibatalkan.

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
左手右手慢动作

Mengikut idea kod anda, anda hanya mahu mengendalikan elemen span dan tidak berniat untuk mengendalikan li, jadi kod itu dilaksanakan seperti ini

$('.list-nav').first().addClass("spanList");
$('.list-nav').on('click',function(){
    $(this).css("background","#6090b6");
    $(this).addClass("spanList");
    
    /** 以下这段实现你说的功能 **/
    var $otherSpans = $(this).closest('li').siblings().find('span.list-nav');
    $otherSpans.css("background", "");
    $otherSpans.removeClass("spanList");
     /** 以上这段实现你说的功能 **/
    
    var href = $(this).attr("href");
    var pos = $(href).offset().top;
    $("html,body").animate({scrollTop: pos}, 1000);       
    return false;
})

Demo Dalam Talian

过去多啦不再A梦

…$this.addClass("").closest("li").siblings("li").find("").removeAttr("")

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan