0

I have some popups and now they close if i press any mouse button. I need only left mouse to press and close popup

And the 2nd one question. Why esc popup code doesnt work??

    const overlayClose = (evt) => {
        if (evt.target.classList.contains('popup_active')) {
            togglePopup(evt.target);
        }
    }
    editPopup.addEventListener('mousedown', (evt) => {
        overlayClose(evt);
    });
    addPopup.addEventListener('mousedown', (evt) => {
        overlayClose(evt);
    });
    imagePopup.addEventListener('mousedown', (evt) => {
        overlayClose(evt);
    });
    
    
    //popup esc code
function togglePopup(popup) {
    popup.classList.toggle('popup_active');
    if (popup.classList.contains('popup_active')) {
        document.addEventListener('keydown', closeEscape);
    } else {
        document.removeEventListener('keydown', closeEscape);
    }
}


const closeEscape = (evt) => {
    if (evt.key === "Escape") {
        popup.classList.remove('popup_active');
    }
}

1 Answers1

0

Here's useful docs about mouse click events https://www.w3schools.com/jsref/event_button.asp

You can add event listener on 'mousedown' event and check if event.button equals 0.

UPD

You simply need to add if condition in your event handlers

 editPopup.addEventListener('mousedown', (evt) => {
    if (evt.button === 0) {
      overlayClose(evt);
    }
 });
Temoncher
  • 644
  • 5
  • 15