추가 버튼을 표시하는 마우스 오버 이벤트와 관련된 JS 문제

매튜 잠밋

사용자가 LI 요소 2 버튼 위로 마우스를 가져 가면 더 많은 기능을 제공 할 수있는 인터페이스를 작업 중입니다. "편집"및 "제거"라고합시다.

마우스 히트 영역에 문제가 있습니다.

Mouseover는 마우스가 실제로 LI 요소 (회색 배경)에있을 때 잘 작동하지만 마우스가 텍스트 위에 있거나 클릭해야하는 실제 버튼 위에있을 때는 작동하지 않습니다.

(컨텍스트를 위해 이것은 Chrome 확장 프로그램 내에 있으며 인라인 JS는 허용되지 않습니다.)

요약 데모 : https://jsfiddle.net/matthewzammit/uh9abfcr/16/

감사!

매트


-풀 코드-

HTML

   <div id="populateArrayList">
  <ul id="myList">
  <!--dynamically fill list-->
  <li id="0" class="urlElement" name="urlElement">
    <div class="urlDetails">
      <div class="urlFavicon">
        <img src="https://www.google.com/s2/favicons?domain=facebook.com">
      </div>
      <div name="url" class="urlAddress" id="0">website1.com</div>
    </div>
    <div class="actionButtons">
      <a id="remove0" class="removeButton" name="Remove" href="#"></a>
      <a id="edit0" class="editButton" name="Edit" href="#"></a>
    </div>
  </li>
  <!-- item 2 -->
    <li id="1" class="urlElement" name="urlElement">
      <div class="urlDetails">
        <div class="urlFavicon">
          <img src="https://www.google.com/s2/favicons?domain=google.com">
        </div>
        <div name="url" class="urlAddress" id="1">website2.com</div>
      </div>
      <div class="actionButtons">
        <a id="remove1" class="removeButton" name="Remove" href="#"></a>
        <a id="edit1" class="editButton" name="Edit" href="#"></a>
      </div>
    </li>
  </ul>
 </div>

JS

document.getElementById("myList").addEventListener("mouseover", e => {
    e.target.querySelector('.actionButtons').classList.add("editVisibility");
    console.log("Target: " + e.target);
})
document.getElementById("myList").addEventListener("mouseout", function (e) {
    e.target.querySelector('.actionButtons').classList.remove("editVisibility");
})
document.getElementById("myList").addEventListener("click", function (e) {
    if (e.target && e.target.getAttribute('name') == "Remove") {
        let idToRemove = e.target.parentElement.parentElement.getAttribute('id');
        alert("Remove");
    }
    if (e.target && e.target.getAttribute('name') == "Edit") {
        let idToEdit = e.target.parentElement.parentElement.getAttribute('id');
        alert("Edit");
    }
});

CSS

.urlElement {
    list-style-type: none;
    background: #ebebeb;
    margin: 10px;
    padding: 10px;
    border-radius: 7px;
    height: 15px;
}

.urlDetails {
    /*   background-color: red; */
}

.urlFavicon {
    float: left;
    margin-right: 10px;
    /*     background-color: green; */
}

.urlAddress {
    float: left;
    /*     background-color: blue; */
}

.actionButtons {
    display: none;
}

/* temp icon */
.removeButton {
    margin-left: 5px;
    padding-right: 20px;
    background-image: url("https://img.icons8.com/ios/15/000000/delete-sign.png");
    background-repeat: no-repeat;
}

/* temp icon */
.editButton {
    margin-left: 5px;
    padding-right: 20px;
    background-image: url("https://img.icons8.com/ios/15/000000/edit.png");
    background-repeat: no-repeat;
/*    display: none;*/
}

.editVisibility {
    display: unset;
    /* Hide button */
}
Lupz

다음과 같이 CSS만으로이 작업을 수행 할 수 있습니다.

.urlElement:hover .actionButtons {
    display: block;
}

자바 스크립트 이벤트 핸들러를 삭제할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

마우스 오버시 메뉴 높이 증가와 관련된 CSS 문제

분류에서Dev

마우스 오버 / 클릭시 색상 변경과 관련된 CSS 문제

분류에서Dev

이미지가 롤업되는 동안 마우스 오버 / 마우스 오버시 게시물 제목 표시

분류에서Dev

클래스별로 JS / JQuery를 선택하여 문서가 준비된 후 버튼에 onclick 이벤트 추가

분류에서Dev

마우스 오버시 배율을 사용하는 동안 배경 이미지 (svg)가 흐려지는 문제

분류에서Dev

이벤트가 추가 마우스 버튼에 반응하지 않습니다.

분류에서Dev

버튼 생성 및 이벤트 핸들러 바인딩과 관련된 몇 가지 문제

분류에서Dev

비뚤어진 버튼이 마우스 오버시 텍스트 색상을 제대로 변경하지 않음

분류에서Dev

마우스 오버 된 이미지 텍스트 오버레이 색상 문제

분류에서Dev

포함 된 테이블의 경우 마우스 오버 이벤트 문제 제거

분류에서Dev

c3.js가 마우스 오버시 값을 표시하지 않음

분류에서Dev

마우스가 버튼 위에 있는지 어떻게 감지합니까? PyGame 버튼 클래스가 마우스 오버시 텍스트를 표시하거나 색상을 변경하지 않습니다.

분류에서Dev

내 forms.py에 PayPal 스마트 결제 버튼을 추가하는 방법

분류에서Dev

마우스 오른쪽 버튼을 클릭하면 컨텍스트 메뉴를 추가합니다.

분류에서Dev

마우스 이벤트 관련 문제

분류에서Dev

빈 텍스트 영역과 관련된 버튼 숨기기 (문제 선택)

분류에서Dev

SVG D3.js는 텍스트 마우스 오버시 SVG g : circle에 요소를 추가합니다.

분류에서Dev

마우스 오버시 이미지 및 관련 텍스트 변경

분류에서Dev

bxslider-복제 된 요소가있는 마우스 오버

분류에서Dev

Delphi, 마우스 이동시 오버레이 된 컨트롤을 표시하는 방법

분류에서Dev

마우스 오버시 버튼 모음 표시 텍스트

분류에서Dev

클립 보드 .js로 마우스 오버시 제목 속성 업데이트

분류에서Dev

ListBox 항목을 마우스 오른쪽 버튼으로 클릭 할 때 단추 또는 레이블을 표시하는 방법

분류에서Dev

Raphael.js의 마우스 이벤트는 모든 마우스 버튼으로 트리거됩니다.

분류에서Dev

인 텐트에 추가 버튼을 추가하고 모두 비우려면 버튼 제거

분류에서Dev

jQuery는 PHP 동적 ID와 관련된 부트 스트랩 팝 오버 버튼에 대한 URL 동작을 만듭니다.

분류에서Dev

여러 JS 버튼 관련 문제

분류에서Dev

버튼의 여백을 무시하고 여러 버튼 텍스트와 문제

분류에서Dev

Vaadin의 버튼 텍스트와 관련된 버튼 크기

Related 관련 기사

  1. 1

    마우스 오버시 메뉴 높이 증가와 관련된 CSS 문제

  2. 2

    마우스 오버 / 클릭시 색상 변경과 관련된 CSS 문제

  3. 3

    이미지가 롤업되는 동안 마우스 오버 / 마우스 오버시 게시물 제목 표시

  4. 4

    클래스별로 JS / JQuery를 선택하여 문서가 준비된 후 버튼에 onclick 이벤트 추가

  5. 5

    마우스 오버시 배율을 사용하는 동안 배경 이미지 (svg)가 흐려지는 문제

  6. 6

    이벤트가 추가 마우스 버튼에 반응하지 않습니다.

  7. 7

    버튼 생성 및 이벤트 핸들러 바인딩과 관련된 몇 가지 문제

  8. 8

    비뚤어진 버튼이 마우스 오버시 텍스트 색상을 제대로 변경하지 않음

  9. 9

    마우스 오버 된 이미지 텍스트 오버레이 색상 문제

  10. 10

    포함 된 테이블의 경우 마우스 오버 이벤트 문제 제거

  11. 11

    c3.js가 마우스 오버시 값을 표시하지 않음

  12. 12

    마우스가 버튼 위에 있는지 어떻게 감지합니까? PyGame 버튼 클래스가 마우스 오버시 텍스트를 표시하거나 색상을 변경하지 않습니다.

  13. 13

    내 forms.py에 PayPal 스마트 결제 버튼을 추가하는 방법

  14. 14

    마우스 오른쪽 버튼을 클릭하면 컨텍스트 메뉴를 추가합니다.

  15. 15

    마우스 이벤트 관련 문제

  16. 16

    빈 텍스트 영역과 관련된 버튼 숨기기 (문제 선택)

  17. 17

    SVG D3.js는 텍스트 마우스 오버시 SVG g : circle에 요소를 추가합니다.

  18. 18

    마우스 오버시 이미지 및 관련 텍스트 변경

  19. 19

    bxslider-복제 된 요소가있는 마우스 오버

  20. 20

    Delphi, 마우스 이동시 오버레이 된 컨트롤을 표시하는 방법

  21. 21

    마우스 오버시 버튼 모음 표시 텍스트

  22. 22

    클립 보드 .js로 마우스 오버시 제목 속성 업데이트

  23. 23

    ListBox 항목을 마우스 오른쪽 버튼으로 클릭 할 때 단추 또는 레이블을 표시하는 방법

  24. 24

    Raphael.js의 마우스 이벤트는 모든 마우스 버튼으로 트리거됩니다.

  25. 25

    인 텐트에 추가 버튼을 추가하고 모두 비우려면 버튼 제거

  26. 26

    jQuery는 PHP 동적 ID와 관련된 부트 스트랩 팝 오버 버튼에 대한 URL 동작을 만듭니다.

  27. 27

    여러 JS 버튼 관련 문제

  28. 28

    버튼의 여백을 무시하고 여러 버튼 텍스트와 문제

  29. 29

    Vaadin의 버튼 텍스트와 관련된 버튼 크기

뜨겁다태그

보관