Saya memiliki div yang telah saya lampirkan onclick
acara. di div ini ada tag dengan tautan. Ketika saya mengklik tautan onclick
acara dari div juga dipicu. Bagaimana saya bisa menonaktifkan ini sehingga jika tautan diklik pada div onclick
tidak dipecat?
naskah:
$(document).ready(function(){
$(".header").bind("click", function(){
$(this).children(".children").toggle();
});
})
kode html:
<div class="header">
<a href="link.html">some link</a>
<ul class="children">
<li>some list</li>
</ul>
</div>
$(".header a")
dengan$(".header *")
dan mendapatkan anak yang dipilih (div, formulir, masukan, dll).rel
lightbox yang dikonfigurasi berfungsiAtau, daripada memiliki pengendali event tambahan untuk mencegah pengendali lainnya, Anda bisa menggunakan argumen Object Event yang diteruskan ke pengendali event klik untuk menentukan apakah seorang anak diklik.
target
akan menjadi elemen yang diklik dancurrentTarget
akan menjadi .header div:sumber
currentTarget
. Solusinya adalah menggantinya denganthis
, seperti yang disarankan dalam jawaban lain .Cara yang lebih baik dengan menggunakan on () dengan chaining seperti,
sumber
Jawaban di sini mengambil pertanyaan OP terlalu harfiah. Bagaimana jawaban ini dapat diperluas menjadi skenario di mana ada elemen anak BANYAK, bukan hanya satu
<a>
tag? Ini satu cara.Katakanlah Anda memiliki galeri foto dengan latar belakang pingsan dan foto-foto terpusat di browser. Saat Anda mengeklik latar belakang hitam (tetapi tidak apa pun di dalamnya), Anda ingin tutupnya ditutup.
Berikut ini beberapa HTML yang mungkin:
Dan inilah cara kerja JavaScript:
Ini akan menghentikan acara klik dari elemen di dalam
.contents
dari setiap penelitian.gallery
sehingga galeri akan ditutup hanya ketika Anda mengklik area latar belakang hitam yang pudar, tetapi tidak ketika Anda mengklik di area konten. Ini dapat diterapkan pada banyak skenario yang berbeda.sumber
Saya menemukan pertanyaan ini, mencari jawaban lain.
Saya ingin mencegah semua anak memicu orang tua.
JavaScript:
jQuery:
sumber
Atau ini:
sumber
return false
ke tautan, itu harus dapat diklik.Solusi paling sederhana adalah menambahkan CSS ini ke anak-anak:
sumber
Cara yang lebih singkat untuk melakukannya:
sumber