cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Jika elemen induk terikat untuk mengklik, bagaimanakah elemen anak dapat mengelak daripada mencetuskan klik elemen induk tanpa klik yang mengikat?

HTML:

<p id="container">
  <p id="inner">

  </p>
</p>

JS:

document.getElementById('container').addEventListener('click',function () {
  document.getElementById('inner').style.display = "none";
});

Apabila saya klik pada elemen kanak-kanak, ia akan hilang. Bagaimana untuk mengelakkan situasi ini? Saya tidak mahu mengikat acara klik pada elemen kanak-kanak juga.

扔个三星炸死你扔个三星炸死你2786 hari yang lalu900

membalas semua(3)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:24:56

    document.getElementById('container').addEventListener('click',function (e) {
      document.getElementById('inner').style.display = "none";
      e.stopPropagation();
    }, true);
    
    1. ialah addEventListener 传递第三个参数 true. Gunakan tangkapan peristiwa.

      • https://developer.mozilla.org...

    2. e.stopPropagation() Hentikan penyebaran insiden.

      • https://developer.mozilla.org...

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:24:56

    https://jsfiddle.net/g5u7qrrd/6/

    document.getElementById('container')
        .addEventListener('click',function (e) {
            if (e.target.id !== 'inner')
                document.getElementById('inner').style.display = "none";
        });

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:24:56

    Tambahkan pointer-events: none; pada gaya elemen kanak-kanak dan abaikan acara tetikus secara langsung. IE mungkin perlu serasi.

    balas
    0
  • Batalbalas