[英]Function logic not behaving as intended
下午好,
我正在處理一個任務列表,我的removeTask
函數遇到了一些問題。 我試圖這樣做,如果沒有更多的任務要刪除,那么不要顯示我的taskList
filterDiv
和clearBtn
。 實際發生的是當沒有其他東西可以刪除時,它仍然顯示我的taskList
樣式。
我還注意到,即使沒有刪除任務,單擊刪除按鈕外部也會隱藏我的任務值。 有人能幫助我理解為什么我的邏輯不起作用嗎? 任何幫助表示贊賞!
function removeTask(e) {
if (e.target.parentElement.classList.contains('delete-item')) {
if (confirm('Are you sure?')) {
e.target.parentElement.parentElement.remove();
}
} else {
taskList.style.display = 'none';
clearBtn.style.display = 'none';
filterDiv.style.display = 'none';
}
e.preventDefault();
}
我創建了一個小提琴,因為代碼片段無法正確加載所有內容。
您目前正在通過刪除其他方式進行此操作。 這顯然不會起作用,因為一旦你刪除它,該功能將不會轉到其他地方。 您必須在刪除元素后執行此操作:
function removeTask(e) {
if (e.target.parentElement.classList.contains('delete-item')) {
if (confirm('Are you sure?')) {
e.target.parentElement.parentElement.remove();
if(document.querySelectorAll('.collection-item').length === 0){
taskList.style.display = 'none';
clearBtn.style.display = 'none';
filterDiv.style.display = 'none';
}
}
}
e.preventDefault();
}
乍一看 - 看起來你錯過了一個檢查,如果刪除任務后列表是空的:)
function removeTask(e) {
if (e.target.parentElement.classList.contains('delete-item')) {
if (confirm('Are you sure?')) {
e.target.parentElement.parentElement.remove();
if (taskList.length = 0) taskList.style.display = 'none';
}
} else {
taskList.style.display = 'none';
clearBtn.style.display = 'none';
filterDiv.style.display = 'none';
}
e.preventDefault();
}
你可能想要重新檢查你在其他方面做的其他動作,他們也屬於這里嗎?
從任務列表中刪除單個任務后,如果沒有任何項目,則需要檢查條件。 如果沒有,則隱藏元素。 我還更新了jsFiddle
function removeTask(e) {
if (e.target.parentElement.classList.contains('delete-item')) {
if (confirm('Are you sure?')) {
e.target.parentElement.parentElement.remove();
if(taskList.children.length <=0) {
taskList.style.display = 'none';
clearBtn.style.display = 'none';
filterDiv.style.display = 'none';
}
}
} else {
taskList.style.display = 'none';
clearBtn.style.display = 'none';
filterDiv.style.display = 'none';
}
e.preventDefault();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.