如何在表格行鼠标事件上限制多个添加和删除类名 [英] How to restrict multiple adding and removing classnames on table row mouse-events
问题描述
我使用 在 mouseOver 任何一行上,我需要在该特定悬停行的最后两列上动态添加两个按钮.如上图.
我通过在 RowMouseOver 上添加类名和 innerHTML 来添加该功能.
并根据添加的 ClassNames onRowMouseOut 删除添加的 innerHtml 元素.
我可以在悬停的行上添加两个按钮.但是当我将鼠标悬停在添加的按钮上时,它会不断闪烁.
这是代码示例:
import React, { Component } from 'react';导入 { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table';const 产品 = [{编号:1,名称:abcdef",价格:120,电子邮件:"abc@gmail.com",电话:"9856325632",提交:10/02/18",回复:"01/09/18",状态:活动"}, {编号:2,名称:abcdef",价格:120,电子邮件:"abc@gmail.com",电话:"9856325632",提交:10/02/18",回复:"01/09/18",状态:活动"},{编号:3,名称:abcdef",价格:120,电子邮件:"abc@gmail.com",电话:"9856325632",提交:10/02/18",回复:"01/09/18",状态:活动"},{编号:4,名称:abcdef",价格:120,电子邮件:"abc@gmail.com",电话:"9856325632",提交:10/02/18",回复:"01/09/18",状态:活动"},{编号:5,名称:abcdef",价格:120,电子邮件:"abc@gmail.com",电话:"9856325632",提交:10/02/18",回复:"01/09/18",状态:活动"},];const total = products.length;类表扩展组件{构造函数(道具){超级(道具);this.state = {文本: '',选择日期:空,页数:1,goToPageNum:1,disableGoButton:true,disableGoToInput:false,尺寸:5,};}onSizePerPageList = (sizePerPage) =>{this.setState({size:sizePerPage},()=> this.hideGTP());}展开组件(行){返回 (<div className="col-3"><div className="card bg-warning"><div className="card-body card-custom d-flex justify-content-around"><div className="card-text"><button type="button" class="btn btn-warning" onClick={()=>alert('hello!!!!!!')}>更改状态</button>
<div className="card-text d-flex align-items-center">删除
)}使成为() {常量选项 = {页面:this.state.page,onRowMouseOut:函数(行,e){让 rmv = document.querySelector('.position-row');rmv.classList.remove('位置-行')document.querySelector('.position-child').remove();},onRowMouseOver:函数(行,e){console.log('鼠标从行进入' + row.id);让 ind = row.id-1;让 addClass = document.querySelectorAll('tbody')[0].children[ind];addClass.classList.add('position-row');console.log('addClass',addClass);let spt = document.querySelector('.position-row');console.log('OVERRR',spt);var divv = document.createElement("div");divv.classList.add('position-child');divv.innerHTML = '<div class="row"><div class="col-6"><button type="button" class="btn btn-warning">更改状态</button>;</div><div class="col-6"><button type="button" class="btn btn-warning">删除用户</button></div></div>'spt.parentNode.insertBefore(divv, spt.nextSibling);}};返回 (<div className="容器 py-5"><引导表trClassName="表行"边框={假}ref='表'数据={产品}选项={选项}搜索={真}><TableHeaderColumn dataField='id' isKey={true}>ID</TableHeaderColumn><TableHeaderColumn dataField='name'>NAME</TableHeaderColumn><TableHeaderColumn dataField='email'>EMAIL</TableHeaderColumn><TableHeaderColumn dataField='phone'>PHONE</TableHeaderColumn><TableHeaderColumn dataField='submitted'>LOGIN</TableHeaderColumn><TableHeaderColumn dataField='responded'>SIGNUP</TableHeaderColumn><TableHeaderColumn dataField='status'>STATUS</TableHeaderColumn></BootstrapTable>