layui点击table里面的行数据,弹出一个div层,div层里面有两个菜单选项,分别为修改和作废,点击其中的选项,弹出弹出层,node代码怎么实现
时间: 2024-03-12 19:48:11 浏览: 111
实现这个功能需要用到前端和后端的技术,下面是一个简单的实现示例:
前端代码:
```html
<table id="myTable">
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>20</td>
<td>男</td>
</tr>
<tr>
<td>李四</td>
<td>25</td>
<td>女</td>
</tr>
</tbody>
</table>
<div id="popupMenu" style="display:none;">
<ul>
<li><a href="#" id="editBtn">修改</a></li>
<li><a href="#" id="cancelBtn">作废</a></li>
</ul>
</div>
<div id="editPopup" style="display:none;">
<form>
<label>姓名:</label><input type="text" name="name"><br>
<label>年龄:</label><input type="text" name="age"><br>
<label>性别:</label><input type="text" name="gender"><br>
<button type="button" id="saveBtn">保存</button>
</form>
</div>
```
上面的代码中,我们创建了一个表格和两个弹出层,其中`popupMenu`是行数据右键菜单弹出层,`editPopup`是修改弹出层。
接着,我们使用layui库来实现点击行数据弹出菜单和弹出层的效果:
```javascript
layui.use('table', function(){
var table = layui.table;
// 监听行单击事件
table.on('row', function(obj){
// 显示右键菜单
var popupMenu = $('#popupMenu');
popupMenu.css({
left: obj.event.clientX + 'px',
top: obj.event.clientY + 'px',
display: 'block'
});
// 监听右键菜单点击事件
popupMenu.find('#editBtn').click(function(){
// 显示修改弹出层
var editPopup = $('#editPopup');
editPopup.css({
left: obj.event.clientX + 'px',
top: obj.event.clientY + 'px',
display: 'block'
});
// 监听保存按钮点击事件
editPopup.find('#saveBtn').click(function(){
// 发送ajax请求保存修改结果
var data = editPopup.find('form').serialize();
$.ajax({
type: 'POST',
url: '/api/update',
data: data,
success: function(){
// 修改成功后刷新表格
table.reload('myTable');
// 隐藏修改弹出层
editPopup.hide();
}
});
});
});
popupMenu.find('#cancelBtn').click(function(){
// 发送ajax请求作废数据
var data = obj.data;
$.ajax({
type: 'POST',
url: '/api/cancel',
data: data,
success: function(){
// 作废成功后刷新表格
table.reload('myTable');
// 隐藏右键菜单
popupMenu.hide();
}
});
});
});
});
```
在上面的代码中,我们使用了`layui.table`模块来监听表格行的单击事件,并且在单击事件中显示右键菜单和修改弹出层。当用户点击保存按钮时,我们发送ajax请求将修改结果保存到后端,并且刷新表格。当用户点击作废按钮时,我们发送ajax请求将数据作废,并且刷新表格。
阅读全文