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

231
Views
How to stay Focus in react js?

code:-

const handleKeyDown = (event, ID) => {
  const active = document.activeElement;
        active.addEventListener('keydown', function (event) {

            switch (event.key) {
                case "ArrowUp":
                    active?.previousElementSibling?.focus();
                    break;
                case "ArrowDown":
                    active?.nextElementSibling?.focus();
                    event.preventDefault();
                    break;
                default: break;
            }
        })        
    }

  <tr key={playdata.idx} tabIndex={playdata.idx} className="border_bottom"
              onKeyDown={(e) => handleKeyDown(e, playdata.idx)}>
                                    <td style={{ color: "white", width: "200px" }}>
                                        <img src={`data:image/jpeg;base64,${base64}`} alt="Clip Thumbnail" width="50%" />
                                    </td>

When I click the row it shows me the focus and I can do the navigation with up and down but when I click the outside the row focus is gone. I want when the user clicks outside the row/table it stays focused where the focuses left How to solve that?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You already have activeElement, we just reuse it for document.click which is to listen to all areas' clicks and filter them out with your expected areas (in your case, the expected elements are .border_bottom)

let active = document.activeElement; //this variable should be global to state your previous active element

document.addEventListener("click", function(event){
  event.preventDefault();
  
//if the current clicked element has your expected class, we should assign a new active element
  if(event.target.classList.contains("border_bottom")){ //you can add another class for the check instead of `border_bottom`
     active = event.target; //set a new active element
  }
  //focus only on active elements
  active?.focus();
});
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!