Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

124
Vistas
¿Cómo puedo arrastrar el mouse a través de múltiples entradas o elementos con contentEditable para seleccionar el texto dentro?

Cuando contentEditable se establece en verdadero, solo se puede seleccionar el elemento que está enfocado. Estoy tratando de hacer celdas que funcionen como lo hacen en Excel. Me gustaría poder editar la celda con un solo clic; de lo contrario, simplemente configuraría contentEditable con estado y los seleccionaría como elementos div regulares. Pensé en hacer algo con onMouseOut para cambiar el estado a falso, pero parece que no funciona.

Componente de la aplicación:

 import { useState, useRef, useEffect } from "react"; import Cell from "./Cell"; export default function App() { const testRef = useRef(); const [st, setSt] = useState(false); useEffect(() => { if (st) testRef.current.focus(); }, [st]); return ( <div style={{ display: "flex" }}> <Cell tabindex="1" /> <Cell tabindex="2" /> <Cell tabindex="3" /> </div> ); }

Componente celular:

 import "./styles.css"; import { useState, useRef, useEffect } from "react"; export default function Cell() { const [editing, setEditing] = useState(true); const testRef = useRef(); const stopEditing = () => setEditing(false); const startEditing = () => setEditing(true); return ( <div> <div ref={testRef} contentEditable={editing} // onBlur={stopEditing} // onMouseUp={stopEditing} onMouseOver={startEditing} style={{ display: "flex", border: "1px solid #696969", width: "100px", height: "25px", cursor: "cell", margin: "2px" }} ></div> <p>{editing.toString()}</p> </div> ); }

https://codesandbox.io/s/unruffled-rain-i0v40g?file=/src/Cell.js:0-734

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

<div class = "div1" onmousedown = "selectFunction()"> function selectFunction() { document.getElementByClassName("div1")[0].style.color = "red"; }

¿Quizás algo como esto? Sin embargo, esto solo funcionará para uno de los div, intente aplicarlos a todos los div. Esto podría no funcionar, lo editaré si no funciona. (Todo esto resalta el div rojo, probablemente no funcionará si desea seleccionar varios div a la vez)

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda