在JavaScript中,实现鼠标悬停时在当前行下动态添加行,并在鼠标移出时删除相同行的功能,可以通过以下步骤来完成:
mouseenter
)和鼠标移出(mouseleave
)事件。以下是一个简单的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dynamic Row Addition</title>
<style>
.hover-row {
background-color: #f0f0f0;
}
</style>
</head>
<body>
<table id="dataTable">
<tr>
<td>Row 1</td>
<td>Content 1</td>
</tr>
<tr>
<td>Row 2</td>
<td>Content 2</td>
</tr>
</table>
<script>
document.addEventListener('DOMContentLoaded', function() {
const table = document.getElementById('dataTable');
table.addEventListener('mouseover', function(event) {
if (event.target.tagName === 'TD') {
const row = event.target.parentElement;
const newRow = document.createElement('tr');
newRow.innerHTML = `<td colspan="2">Additional Info for ${row.cells[0].innerText}</td>`;
newRow.classList.add('hover-row');
row.after(newRow);
}
});
table.addEventListener('mouseout', function(event) {
if (event.target.tagName === 'TD') {
const row = event.target.parentElement;
const nextRow = row.nextElementSibling;
if (nextRow && nextRow.classList.contains('hover-row')) {
nextRow.remove();
}
}
});
});
</script>
</body>
</html>
.hover-row
用于设置悬停行的样式。DOMContentLoaded
事件确保DOM完全加载后再绑定事件。mouseover
事件监听器,当鼠标悬停在单元格上时,在当前行下方插入一个新的行。mouseout
事件监听器,当鼠标移出单元格时,删除刚刚插入的行。通过上述方法,可以实现一个简单而有效的鼠标悬停动态添加行的功能,提升用户界面的交互性和用户体验。
领取专属 10元无门槛券
手把手带您无忧上云