亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果另一個 div 有一個類,則將類添加到一個 div

如果另一個 div 有一個類,則將類添加到一個 div

慕萊塢森 2023-04-27 10:02:02
我做了很多搜索,閱讀了很多關于這個主題的問題和答案,并編寫了以下代碼,但由于某種原因它不起作用。我正在尋求幫助解決此問題。這就是我想要發生的事情:當用戶將鼠標懸停在菜單項上時,會出現一個下拉菜單。然后整個標頭(當前具有ID #header)獲得一個新類(.header-new-class)我發現當他們將鼠標懸停在菜單項 (li) 上時,該站點會自動將類“打開”添加到菜單項(菜單項已經具有類 .menu-item)所以我的邏輯是,當菜單項具有類“open”時,它會將類“header-new-class”添加到 ID 為#header 的 div這是一個非常干凈的 HTML 版本:<div ID="header">    <div>    <div>    <div>    <div>    <div>        <nav>        <nav>            <div>            <div>                <ul>                    <li class="menu-item open">                    </li>                </ul>            </div>            </div>        </nav>        </nav>    </div>    </div>    </div>    </div>    </div></div>這是我寫的代碼:$(document).ready(function(jQuery) {    if ($('.menu-item').hasClass('open')) {        $('#header').addClass('header-new-class');    }});它不工作。我究竟做錯了什么?
查看完整描述

3 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

為什么要通過 jquery 為懸停設置類。CSS 具有:hover提供您想要的相同效果的功能。


#header:hover{

  background-color : lightBlue;

}


.menu-item:hover{

  color: blue;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div ID="header">


    <div>

    <div>

    <div>

    <div>

    <div>

        <nav>

        <nav>

            <div>

            <div>

                <ul>

                    <li class="menu-item">

              Sample Link 1

                    </li>

          <li class="menu-item">

              Sample Link 2

                    </li>

          <li class="menu-item">

              Sample Link 3

                    </li>

                </ul>

            </div>

            </div>

        </nav>

        </nav>

    </div>

    </div>

    </div>

    </div>

    </div>


</div>


查看完整回答
反對 回復 2023-04-27
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

如果您想在鼠標位于菜單項上時在標題上添加一個類,請這樣做,如果您還想刪除該類,請使用下面的注釋代碼。如果您有任何疑問,請隨時提問


$(document).ready(function(){

  $('.menu-item').on('mouseover',function(){

    /*$('.menu-item').removeClass('open');

    $(this).addClass("open");*/

    if($(this).hasClass('open')){

      $('#header').addClass('yourNewClass');

    }else{

      $('#header').removeClass('yourNewClass');

    }

  });

  

  /*$('.menu-item').on('mouseleave',function(){

    $('.menu-item').removeClass('open');

    $('#header').removeClass('yourNewClass');

  });*/

});

.yourNewClass .menu-item.open {color: red;}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div ID="header">


    <div>

    <div>

    <div>

    <div>

    <div>

        <nav>

        <nav>

            <div>

            <div>

                <ul>

                    <li class="menu-item open">

                      item 1

                    </li>

                    <li class="menu-item">

                        item 2

                    </li>

                    <li class="menu-item">

                        item 3

                    </li>

                </ul>

            </div>

            </div>

        </nav>

        </nav>

    </div>

    </div>

    </div>

    </div>

    </div>


</div>


查看完整回答
反對 回復 2023-04-27
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

您可以多次使用同一事件。所以,這是可以實現的正常.hover。


   $(document).ready(function(){

   $('.menu-item').hover(function(){

      $('#header').addClass('header-new-class');

   },function(){

    /* function to remove class when hovering is over */

   })

    

如果你絕對需要檢查類是否open存在,你可以在懸停函數中進行。


您還可以使用mouseenter和mouseleave


$(document).on({

    mouseenter: function () {

        //stuff to do on mouse enter

    },

    mouseleave: function () {

        //stuff to do on mouse leave

    }

}, ".selector");


查看完整回答
反對 回復 2023-04-27
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號