Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

111
Views
¿Cómo evitar que el evento seleccionado se active después de cada entrada?

Estoy tratando de crear un editor de texto personalizado en React, por lo tanto, he creado un div que tiene un atributo contentEditable . Ahora quiero realizar alguna acción cuando el usuario seleccione una parte del texto ingresado. Para hacer eso, estoy usando el evento de select como atributo onSelect en mi div. El problema es que el evento de select se ejecuta no solo al seleccionar el texto, sino también cuando hago clic en el cuadro de entrada o después de cualquier entrada. ¿Cómo puedo evitarlo, para que se active solo cuando se selecciona el texto?

Componente:

 function EditorBody(props) { return ( <div className="editor-body"> <div className="text-section" contentEditable role="textbox" placeholder="Text goes here ..." onSelect={() => window.alert("You've selected a text")} // Runs after every input, not only when the text is selected ></div> </div> ); } export default EditorBody;
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede cambiar la lógica en su onSelect para poder determinar si ejecutar o no la lógica seleccionada.

 onSelect={(event) => { if (document.getSelection().toString().length > 0) { // your selection logic window.alert(document.getSelection().toString()); } }}

De esta manera, la lógica se ejecutará solo si el usuario está seleccionando algo y no en otros eventos primarios que puedan desencadenar el evento de selección secundario (enfoque, pulsación de tecla, etc.).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!