de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Anil Chavda
Anil Chavda
Question

html div acara onclick div html

Saya memiliki satu div html di halaman jsp saya, di atasnya saya telah meletakkan satu tag jangkar, silakan temukan kode di bawah ini untuk itu,

<div class="expandable-panel-heading">
     <h2>
         <a id="ancherComplaint" href="#addComplaint" 
                            onclick="markActiveLink(this);">ABC</a>
     </h2>
</div>

kode js

$('.expandable-panel-heading:not(#ancherComplaint)').click(function () {
     alert('123');
 });

function markActiveLink(el) {   
    alert($(el).attr("id"));
} 

di sini saya ketika saya mengklik div saya mendapat peringatan dengan pesan 123, tidak apa-apa tetapi ketika saya mengklik ABC saya ingin pesan saya ingin memanggil metode markActiveLink.

JSFiddle

apa yang salah dengan kode saya? tolong bantu saya.

15 2013-10-29T10:39:21+00:00 3
Natan Streppel
Natan Streppel
Pertanyaan edit 29 Oktober 2013 в 10:40
Pemrograman
javascript
html
jquery
onclick
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
 ComFreek
ComFreek
29 Oktober 2013 в 10:44
2013-10-29T10:44:13+00:00
Lebih
Sumber
Sunting
#22652750

Masalahnya adalah bahwa mengklik jangkar masih memicu klik di <div> Anda. Itu disebut "event bubbling".

Sebenarnya, ada beberapa solusi:

  • Memeriksa di DIV click event handler apakah elemen target sebenarnya adalah jangkar
    → jsFiddle

      $('.expandable-panel-heading').click(function (evt) {
          if (evt.target.tagName != "A") {
              alert('123');
          }
    
          // Juga memungkinkan jika kondisi:
          // - evt.target.id != "ancherComplaint"
          // - !$(evt.target).is("#ancherComplaint")
      });
    
      $("#ancherComplaint").click(function () {
          alert($(this).attr("id"));
      });
  • Menghentikan propagasi peristiwa dari pendengar klik jangkar
    → jsFiddle

      $("#ancherComplaint").click(function (evt) {
          evt.stopPropagation();
          alert($(this).attr("id"));
      });

Seperti yang mungkin Anda perhatikan, saya telah menghapus bagian selektor berikut dari contoh saya:
:not(#ancherComplaint)

Hal ini tidak diperlukan karena tidak ada elemen dengan kelas .expandable-panel-heading yang juga memiliki #ancherComplaint sebagai ID-nya.

Saya berasumsi bahwa Anda ingin menekan event untuk anchor. Itu tidak dapat bekerja dengan cara itu karena kedua selektor (milik Anda dan milik saya) memilih DIV yang sama persis. Selektor tidak memiliki pengaruh pada pendengar ketika dipanggil; selektor hanya menetapkan daftar elemen yang harus didaftarkan pendengarnya. Karena daftar ini sama di kedua versi, maka tidak ada perbedaan.

 Community
Community
Jawaban edit 23 Mei 2017 в 10:29
18
0
 Satpal
Satpal
29 Oktober 2013 в 10:45
2013-10-29T10:45:18+00:00
Lebih
Sumber
Sunting
#22652752

Coba ini

$('.expandable-panel-heading:not(#ancherComplaint)').click(function () {
    alert('123');
});

$('#ancherComplaint').click(function (event) {
    alert($(this).attr("id"));
    event.stopPropagation()
})

DEMO

2
0
 mplungjan
mplungjan
29 Oktober 2013 в 10:45
2013-10-29T10:45:06+00:00
Lebih
Sumber
Sunting
#22652751

Anda perlu membaca tentang event bubbling dan yang pasti hapus penanganan event inline jika Anda memiliki jQuery pula

Uji klik pada div dan periksa targetnya

Live Demo

$(".expandable-panel-heading").on("click",function (e) {
    if (e.target.id =="ancherComplaint") { // or test the tag
        e.preventDefault(); // or e.stopPropagation()
        markActiveLink(e.target);
    }    
    else alert('123');
});
function markActiveLink(el) {   
    alert(el.id);
} 
1
0
Related communities 6
JavaScript Indonesia
JavaScript Indonesia
14 533 pengguna
Grup JavaScript yang membahas JavaScript, framework JS, dan Node JS secara universal. Cek Pinned Message untuk keterangan lebih lanjut. Komunitas ReactJS: https://t.me/react_idn
Buka telegram
HTML dan CSS Indonesia
HTML dan CSS Indonesia
4 094 pengguna
Silahkan bertanya terkait mengenai HTML maupun CSS. Membaca, menulis, berbagi. Baca dahulu pesan tersemat di pinned post.
Buka telegram
jQuery Indonesia
jQuery Indonesia
343 pengguna
Learning jQuery & Solve Problem
Buka telegram
Pemrograman Web Indonesia (HTML CSS Javascript PHP MySQL)
Pemrograman Web Indonesia (HTML CSS Javascript PHP MySQL)
306 pengguna
Official Website : www.pemweb.id Belajar Pemrograman Web (HTML CSS Javascript PHP MySQL) Grup Belajar Pemrograman Web. HTML + PHP + Javascript + MySQL DB Semoga menjadi forum belajar, menambah wawasan, peningkatan mutu personal kita semua.
Buka telegram
HTML INDONESIA
HTML INDONESIA
109 pengguna
Buka telegram
PHP HTML Indonesia
PHP HTML Indonesia
59 pengguna
~ Menerima Jasa Pembuatan Website untuk : Tugas & Instansi 💻 ~ Forum Diskusi Belajar Bersama ✅ ~ Promosi Jasa Minimal 1x Sehari ✅ ~ Dilarang Berbicara Kotor 🚫 ^ Other Grup : Whatsapp Group : Chat Admin untuk masuk ke Grup Whatsapp ^^
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 7 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi