2016-12-09 185 views
0

不知道我是否正確執行此操作。我有一個在打開和關閉之間切換的菜單。現在我想要一個按鈕來顯示菜單hasClass("open");。並且我想在class open消失後刪除該課程。如果元素具有類添加類到另一個元素

這是HTML部分;

<nav> 
    <a class="closed"><i class="fa fa-bars"></i>Menu</a> 
     <ul> 
      <li>Menu items</li> 
     </ul> 
    <div class="close-btn"> 
     <i class="fa fa-times" aria-hidden="true"></i> 
    </div> 
</nav> 

的HTML作品,所以這並不重要,重要的部分是,內容是:navaclosed

現在爲jQuery部分;

$(document).ready(function(jQuery) { 
    if ($("nav a").hasClass("open")) { 
     $(".close-btn").addClass('show-me-the-button'); 
    } else { 
     $(".close-btn").removeClass('show-me-the-button'); 
    } 
}); 

但是這不起作用。我搜索了stackoverflow,但都給了我這個代碼...不知道爲什麼它不工作。我沒有腳本錯誤...任何幫助?

+2

您需要在切換菜單上的'open' /'close'類的事件處理程序中運行代碼 –

+2

您的HTML沒有類'.close-btn'類的元素。 – connexo

+0

可能需要更多信息,請修改。 您是試圖通過點擊一個項目打開和關閉,或只在頁面加載? 或者你是否在嘗試「檢測」它何時發生變化。如果是這種情況,則需要創建不同類型的事件。 –

回答

3

您只在初始頁面加載時檢查類。你在哪裏更換open班?您應該在該位置移動此代碼。

1

用戶 - 奧廖爾是正確的

儘量把你的代碼的處理程序裏面是這樣的:

$(document).ready(function(jQuery) { 

    $('nav a').on('click', function(e) { // <----------- Click Handler (jQuery) 

     // Use $(this) to access current clicked element 
     if ($(this).hasClass("open")) { 
      $(".close-btn").addClass('show-me-the-button'); 
     } else { 
      $(".close-btn").removeClass('show-me-the-button'); 
     } 

    }) 

}); 

查看更多有關Click Handler in jQuery

希望這有助於!

相關問題