![](/img/trans.png)
[英]Vanilla Javascript: Remove toggle class from X element if I click on Y element with the same toggle class
[英]Vanilla Javascript - Adding class to element 1 and remove class from element 2 on click of element 1
有人告訴我,我不能再在我正在構建的項目中使用jQuery,所以我不得不使用vanilla Javascript,這有時可能會超出我的想象。 我希望簡單地將這個jQuery轉換為js。 我在Stack Overflow上搜索和搜索無濟於事,但我覺得它應該不那么困難。 任何幫助都會很棒!
$('.navbuttoncontainer a').on( 'click', function() {
$('.navbuttoncontainer .current').removeClass('current');
$(this).addClass('current');
您可以將click
事件偵聽器附加到.navbuttoncontainer
元素。
然后通過檢查目標元素的標記名稱( e.target
)來確定是否單擊了a
元素。 使用.add()
/ .remove()
的方法classList
屬性的元素,以添加/刪除類。
document.querySelector('.navbuttoncontainer').addEventListener('click', function (e) { var target = e.target; if (target.tagName === 'A') { e.currentTarget.querySelector('.current').classList.remove('current'); target.classList.add('current'); } });
.current { color: #f00; }
<div class="navbuttoncontainer"> <a class="current">Initially current item</a> <a>Second item</a> <a>Third item</a> </div>
所有現代瀏覽器都支持document.querySelector
/ document.querySelectorAll
,它們與jQuery $函數基本相同。
(有關支持的瀏覽器信息,請查看http://caniuse.com/#feat=queryselector 。
DOM API不是在jQuery對象上調用addClass
/ removeClass
,而是公開名為className
的元素的屬性。 這與元素上的class
屬性相同:
this.className ='current';
最后,使用addEventListener
函數注冊事件處理程序。 參數是事件名稱和事件處理函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.