/* ******************* 按钮变灰 ******************* */ $(() => { const disabledRightButton = function (...indexIds) { indexIds.forEach(index => { let buttons = $(".ant-menu-item.text-elli[ecid='_Route@9uoqid_Com@knmejd_WeaRightMenu@spqptt_Item@eu37n0_li@zyccqn']") let nodeArr = [] for (let i = 0; i < buttons.length; i++) { let item = buttons[i] nodeArr.push(findReact(item)) } let disableArr = [] for (let i = 0; i < nodeArr.length; i++) { let node = nodeArr[i] if (index === i) { node.props.disabled = true node.setState({}) disableArr.push(node) } } for (let i = 0; i < nodeArr.length; i++) { let node = nodeArr[i] let onMouseOver = node.onMouseOver let onMouseLeave = node.onMouseLeave node.onMouseOver = (...args) => { disableArr.forEach(item => { item.props.disabled = true item.setState({}) }) onMouseOver(...args) } node.onMouseLeave = (...args) => { disableArr.forEach(item => { item.props.disabled = true item.setState({}) }) onMouseLeave(...args) } } }) } const findReact = function (dom, traverseUp = 0) { const key = Object.keys(dom).find(key => { return key.startsWith("__reactFiber$") // react 17+ || key.startsWith("__reactInternalInstance$") || key.startsWith("__reactEventHandlers$"); // react <17 }); const domFiber = dom[key]; if (domFiber == null) return null; // react <16 if (domFiber._currentElement) { let compFiber = domFiber._currentElement._owner; for (let i = 0; i < traverseUp; i++) { compFiber = compFiber._currentElement._owner; } return compFiber._instance; } // react 16+ const GetCompFiber = fiber => { let parentFiber = fiber.return; while (typeof parentFiber.type == "string") { parentFiber = parentFiber.return; } return parentFiber; }; let compFiber = GetCompFiber(domFiber); for (let i = 0; i < traverseUp; i++) { compFiber = GetCompFiber(compFiber); } return compFiber.stateNode; } window.disabledRightButton = disabledRightButton }) /* ******************* 按钮变灰 ******************* */