cari

Rumah  >  Soal Jawab  >  teks badan

javascript - js Bagaimana untuk menambah warna latar belakang li secara dinamik, dan memadam kelas yang sama dengan adik beradik li yang lain

<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.

天蓬老师天蓬老师2795 hari yang lalu667

membalas semua(2)saya akan balas

  • ringa_lee

    ringa_lee2017-05-19 10:40:06

    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

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:40:06

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

    balas
    0
  • Batalbalas