const offCanvasLinks = document.querySelectorAll('.off-canvas__link');
[].forEach.call(offCanvasLinks, function(link) {
link.addEventListener('click', (event) => {
const typeVal = link.getAttribute('data-type')
if (typeVal === "star") {
document.querySelector('[data-star-links]').classList.toggle('active');
} else if (typeVal === "how-to") {
document.querySelector('[data-how-to]').classList.toggle('active');
} else {
document.querySelector('[data-presenters]').classList.toggle('active');
}
})
});
私はナビゲーションをクリックしてアクティブなクラスを切り替える上記のコードを持っています。Javascript - クリックされている要素に既にアクティブなクラスがない限り、すべてのアクティブなクラスを削除する方法
ナビゲーション内の別の要素をクリックすると、クリックされた要素に既にアクティブなクラスがない限り、すべてのアクティブなクラスを削除する必要があります。
Jqueryでは、これは非常に簡単です.Not()を使用できます。イベントターゲットを通過して、他のすべてのアクティブなクラスをチェックして削除することができます。
これをもっと明確にするには、クリックされた要素に既にアクティブなクラスがない限り、すべてのアクティブなクラスを削除する方法があります。
は、更新***********私は自分の考えを知ってみましょう****************** [OK]をクリックして... 一番下のリンクには、別のリンクをクリックすると、前のリンクを閉じて次のリンクを開くと、うまく画面が表示されます。ただし、同じリンクをクリックしてもメニューは閉じません。
既に開いているクラスを削除するにはどうすればよいですか?
リンク:このようなhttps://jsfiddle.net/2oqm0r2n/3/
に...
を実行時に何も表示されないのであまり役に立ちません。 – trincot
私はJsfiddle Trincotを更新して、私の問題を見ることができます.Keenはこれを解決しました – MaxwellLynn
こんにちはTrincot、私はちょうど私の質問を更新しました。私はこれが今より意味をなさないことを望む。 – MaxwellLynn