在這段代碼中,我試圖找出在哪里添加 preventDefault()
document.addEventListener("DOMContentLoaded", function(event) {
var element = document.querySelectorAll('li.nav-item');
if (element) {
element.forEach(function(el, key){
el.addEventListener('click', function () {
el.classList.toggle("active");
element.forEach(function(ell, els){
if(key !== els) {
ell.classList.remove('active');
}
});
});
});
}
});
問題是我已經嘗試過 element.preventDefault() 和 el。甚至嗯。但沒有看。
這是對應的html
<ul class="navbar-nav text-center">
<li class="nav-item active">
<a class="nav-link" aria-current="page" href="#">a</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">a</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">a</a>
</li>
</ul>
問題是我在標記“li”而不是“li”本身中的“a”嗎?
uj5u.com熱心網友回復:
使用您的點擊事件觸發的事件引數。并且,在那里使用 preventDefault ,因為您想停止單擊事件。
document.addEventListener("DOMContentLoaded", function() {
var element = document.querySelectorAll('li.nav-item');
if (element) {
element.forEach(function(el, key){
el.addEventListener('click', function (event) {
event.preventDefault();
el.classList.toggle("active");
element.forEach(function(ell, els){
if(key !== els) {
ell.classList.remove('active');
}
});
});
});
}
});
uj5u.com熱心網友回復:
preventDefault是事件的屬性,而不是元素本身的屬性。不確定您的確切用例,但您可以嘗試以下操作。
(即向 onclick 處理程式添加一個引數,稱為e,并呼叫e.preventDefault();)
el.addEventListener('click', function (e) {
e.preventDefault(); // <-- here
el.classList.toggle("active");
element.forEach(function(ell, els){
if(key !== els) {
ell.classList.remove('active');
}
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/357748.html
標籤:javascript html
上一篇:有沒有辦法使用window.location創建POSTHTTP請求?
下一篇:重繪頁面后留在同一個標??簽頁
